/*
這里是bmob自動更新的文檔:http://docs.bmob.cn/android/autoupdate/index.html?menukey=otherdoc&key=autoupdate
Bmob的sdk里面不僅僅提供了對我們應用數(shù)據(jù)的操作祭芦,還提供自動更新組件。今天我就來說說在應用中加入自動更新功能憔鬼。
1:首先我們要在應用中加入相關的資源什么的龟劲。
下載地址:Bmob下載地址自己去bmob官網(wǎng)看。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反饋功能那里我已經(jīng)將的很清楚了照雁。你們可以去看看蚕愤。
*/
Bmob.initialize(this, 你的應用的appid);
/*
4:添加更新功能。
首先你得在你的bmob后臺建立一個更新表饺蚊,當然bmob也提供了方法一句代碼建立表(記住建立更新表的代碼調(diào)用一次即可审胸。)
在OnCreate里面添加這句在bmob建立表。
*/
BmobUpdateAgent.initAppVersion(this);
/*
現(xiàn)在我們就可以調(diào)用更新代碼了卸勺。
*/
BmobUpdateAgent.update(this);
//默認僅wifi更新砂沛,當然bmob也提供方法設置可用流量更新。
BmobUpdateAgent.setUpdateOnlyWifi(false)
/*
如果你的應用需要自定義更新功能可以這樣做曙求。
*/
BmobUpdateAgent.setUpdateListener(new BmobUpdateListener() {
@Override
public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) {
? ? //根據(jù)updateStatus來判斷更新是否成功
if (updateStatus == UpdateStatus.Yes) {
wl("發(fā)現(xiàn)更新");
}else if(updateStatus == UpdateStatus.No){
wl("您已是最新版本");
}else if(updateStatus==UpdateStatus.IGNORED){
? ? ? ? wl("該版本已被忽略更新");
? ? ? ? }else if(updateStatus==UpdateStatus.TimeOut){
? ? ? ? ? ? ? ? wl("查詢出錯或查詢超時");
? ? ? ? ? ? ? ? ? ? ? }
}
})
/*
除此之外碍庵,還有很多可以自定義的功能。
SDK中為自動更新方式提供了強制更新功能悟狱,當開發(fā)者開啟強制更新功能(即將后臺的AppVersion表中的isforce字段置為true)時静浴,客戶端調(diào)用BmobUpdateAgent.update(context)方法后,更新對話框只保留“立即更新”按鈕且不再支持回退操作挤渐。
*/
/*
忽略版本更新
SDK中為自動更新方式提供了忽略版本更新功能苹享,當用戶勾選”忽略該版“選項時,再次調(diào)用BmobUpdateAgent.update(context)則不再出現(xiàn)版本更新對話框。
注:強制更新和忽略版本更新只支持自動更新方式得问。
*/
/*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下載過程中切換網(wǎng)絡導致的解析包出現(xiàn)錯誤的問題漓骚,請手動填入通過如下代碼得到的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
作者:夢乾
? ? ? ?