Android 自动更新功能
2016-06-07 11:26
459 查看
注意点1:运行时Installation error INSTALL_FAILED_VERSION_DOWNGRADE错误:主要原因是机器上的版本信息比AndroidManifest.xml的versionCode设置的大,将versionCode设置为比
当前的大或者卸载程序重新安装。
注意点2:添加权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
注意点3:服务器端设置,http://blog.csdn.net/wuwo333/article/details/7971600
第三条:
服务端主要是建立一个网址供用户下载apk。在IIS上新建网站
version.xml格式
<update>
<version>12</version>
<name>BoilerAndroid_1.1</name>
<url>http://192.168.0.33:8011/boilerandroid.apk</url>
</update>
在这里有可能会遇见一个问题,访问url路径时IIS报错。主要是因为IIS并不认识apk,不知道如何处理。
这里我们在IIS中新增安卓程序的MIME类型,来使apk支持下载。
在“IIS管理器”中查看所建立的网站——MIME类型——添加。
文件扩展名:.apk
MIME类型:application/vnd.android.package-archive
注意点4:程序使用的demo为http://www.cnblogs.com/coolszy/archive/2012/04/27/2474279.html
需要修改UpdateManager类中 getVersionCode方法 .getPackageInfo 修改包路径与AndroidManifest.xml一致
在src下加入version.xml用来获取下载服务器的地址。
注意点5:在Android4.0以上 在onCreate里加入
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
修改一个方法:/**
* �?查软件是否有更新版本
*
* @return
*/
private boolean isUpdate()
{
int versionCode = getVersionCode(mContext);
int serviceCode=getServiceVersion();
if (serviceCode > versionCode) {
return true;
}
return false;
}
添加一个方法:
//获取服务器版本号
private int getServiceVersion() {
int serviceCode = 0;
try{
URL url=new URL(mXmlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
ParseXmlService service = new ParseXmlService();
mHashMap = service.parseXml(inStream);
serviceCode = Integer.valueOf(mHashMap.get("version"));
return serviceCode;
}catch(Exception e){
e.printStackTrace();
}
return serviceCode;
}
当前的大或者卸载程序重新安装。
注意点2:添加权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
注意点3:服务器端设置,http://blog.csdn.net/wuwo333/article/details/7971600
第三条:
服务端主要是建立一个网址供用户下载apk。在IIS上新建网站
version.xml格式
<update>
<version>12</version>
<name>BoilerAndroid_1.1</name>
<url>http://192.168.0.33:8011/boilerandroid.apk</url>
</update>
在这里有可能会遇见一个问题,访问url路径时IIS报错。主要是因为IIS并不认识apk,不知道如何处理。
这里我们在IIS中新增安卓程序的MIME类型,来使apk支持下载。
在“IIS管理器”中查看所建立的网站——MIME类型——添加。
文件扩展名:.apk
MIME类型:application/vnd.android.package-archive
注意点4:程序使用的demo为http://www.cnblogs.com/coolszy/archive/2012/04/27/2474279.html
需要修改UpdateManager类中 getVersionCode方法 .getPackageInfo 修改包路径与AndroidManifest.xml一致
在src下加入version.xml用来获取下载服务器的地址。
注意点5:在Android4.0以上 在onCreate里加入
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
修改一个方法:/**
* �?查软件是否有更新版本
*
* @return
*/
private boolean isUpdate()
{
int versionCode = getVersionCode(mContext);
int serviceCode=getServiceVersion();
if (serviceCode > versionCode) {
return true;
}
return false;
}
添加一个方法:
//获取服务器版本号
private int getServiceVersion() {
int serviceCode = 0;
try{
URL url=new URL(mXmlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
ParseXmlService service = new ParseXmlService();
mHashMap = service.parseXml(inStream);
serviceCode = Integer.valueOf(mHashMap.get("version"));
return serviceCode;
}catch(Exception e){
e.printStackTrace();
}
return serviceCode;
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories