Bmob自动更新
/*
这里是bmob自动更新的文档:http://docs.bmob.cn/android/autoupdate/index.html?menukey=otherdoc&key=autoupdate
Bmob的sdk里面不仅仅提供了对我们应用数据的操作,还提供自动更新组件。今天我就来说说在应用中加入自动更新功能。
1:首先我们要在应用中加入相关的资源什么的。
下载地址:Bmob下载地址自己去bmob官网看。www.bmob.cn
资源下载地址:http://www.bmob.cn/static/res.zip
然后我们把它全部的文件都移到自己的工程下。
2:添加相应的权限,如下所示:
还有Activity标签
*/
<activity
android:name="cn.bmob.v3.update.UpdateDialogActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
</activity>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
/*
3:在OnCreate里面初始化sdk。
这里在bmob反馈功能那里我已经将的很清楚了。你们可以去看看。
*/
Bmob.initialize(this, 你的应用的appid);
/*
4:添加更新功能。
首先你得在你的bmob后台建立一个更新表,当然bmob也提供了方法一句代码建立表(记住建立更新表的代码调用一次即可。)
在OnCreate里面添加这句在bmob建立表。
*/
BmobUpdateAgent.initAppVersion(this);
/*
现在我们就可以调用更新代码了。
*/
BmobUpdateAgent.update(this);
//默认仅wifi更新,当然bmob也提供方法设置可用流量更新。
BmobUpdateAgent.setUpdateOnlyWifi(false)
/*
如果你的应用需要自定义更新功能可以这样做。
*/
BmobUpdateAgent.setUpdateListener(new BmobUpdateListener() {
@Override
public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) {
//根据updateStatus来判断更新是否成功
if (updateStatus == UpdateStatus.Yes) {
wl("发现更新");
}else if(updateStatus == UpdateStatus.No){
wl("您已是最新版本");
}else if(updateStatus==UpdateStatus.IGNORED){
wl("该版本已被忽略更新");
}else if(updateStatus==UpdateStatus.TimeOut){
wl("查询出错或查询超时");
}
}
})
/*
除此之外,还有很多可以自定义的功能。
SDK中为自动更新方式提供了强制更新功能,当开发者开启强制更新功能(即将后台的AppVersion表中的isforce字段置为true)时,客户端调用BmobUpdateAgent.update(context)方法后,更新对话框只保留“立即更新”按钮且不再支持回退操作。
*/
/*
忽略版本更新
SDK中为自动更新方式提供了忽略版本更新功能,当用户勾选”忽略该版“选项时,再次调用BmobUpdateAgent.update(context)则不再出现版本更新对话框。
注:强制更新和忽略版本更新只支持自动更新方式。
*/
/*bmob的后台的表对应。
字段名称 字段类型 是否必填 字段说明
update_log String 是 更新日志
version String 是 版本名称
version_i Number 是 版本号
platform String 是 平台,注意:"Android"为安卓平台标示,"ios"为ios平台标示
target_size String 是 Apk文件大小
isforce Boolean 否 是否强制更新
path File 是/否 Apk文件
android_url String 是/否 apk市场地址(path字段和本字段必填其中一个)
channel String 否 渠道标示
ios_url String 否 iOS app store地址(如果是ios记录一定要填写)
*/
/*
1、target_size为必填项,是为了解决当apk下载过程中切换网络导致的解析包出现错误的问题,请手动填入通过如下代码得到的target_size值(不需要单位):
long target_size = new File("sdcard/应用名.apk").length()
假如,上面的target_size的值为1023380,则只需要在target_size字段中填写1023380就行。
*/
//当然最后得奉上一个源码
//案例源码这里我们提供了一个使用BmobSDK自动更新功能的实例程序供大家参考。下载地址如下:https://github.com/bmob/bmob-android-demo-autoupdate
作者:梦乾