如何測(cè)試集成是否成功?
我們?cè)谛∶组_發(fā)者中心提供了測(cè)試沙盒,當(dāng)您集成完畢之后,可以在沙盒中上傳您的包進(jìn)行測(cè)試,在沙盒中上傳并不會(huì)發(fā)布出去,您可以放心測(cè)試沙盒位置:登錄小米開發(fā)者中心-選擇您的應(yīng)用-點(diǎn)擊『檢查更新SDK』-您可以看到沙盒測(cè)試按鈕
如何設(shè)置僅在WiFi下檢查更新?
默認(rèn)是在有網(wǎng)絡(luò)條件下即檢查,可設(shè)置為只在WiFi情況下檢查更新:
XiaomiUpdateAgent.setCheckUpdateOnlyWifi(true);
XiaomiUpdateAgent.update(this);
API:
- public void setCheckUpdateOnlyWifi(boolean isOnlyWiFi)
isOnlyWiFi 布爾值 false(默認(rèn)) 在有網(wǎng)絡(luò)情況下就檢查更新,true,只在WiFi下檢查更新
我希望自己設(shè)計(jì)提醒樣式,如何手動(dòng)處理回調(diào)?
如果想自己處理更新可以按如下步驟,設(shè)置updateAutoPopup=false,SDK將停止彈框,實(shí)現(xiàn)更新監(jiān)聽接口,處理更新事件:
XiaomiUpdateAgent.setUpdateAutoPopup(false);
XiaomiUpdateAgent.setUpdateListener(new XiaomiUpdateListener() {
@Override
public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) {
switch (updateStatus) {
case UpdateStatus.STATUS_UPDATE:
// 有更新, UpdateResponse為本次更新的詳細(xì)信息
// 其中包含更新信息,下載地址,MD5校驗(yàn)信息等,可自行處理下載安裝
// 如果希望 SDK繼續(xù)接管下載安裝事宜,可調(diào)用
// XiaomiUpdateAgent.arrange()
break;
case UpdateStatus.STATUS_NO_UPDATE:
// 無更新, UpdateResponse為null
break;
case UpdateStatus.STATUS_NO_WIFI:
// 設(shè)置了只在WiFi下更新,且WiFi不可用時(shí), UpdateResponse為null
break;
case UpdateStatus.STATUS_NO_NET:
// 沒有網(wǎng)絡(luò), UpdateResponse為null
break;
case UpdateStatus.STATUS_FAILED:
// 檢查更新與服務(wù)器通訊失敗,可稍后再試, UpdateResponse為null
break;
case UpdateStatus.STATUS_LOCAL_APP_FAILED:
// 檢查更新獲取本地安裝應(yīng)用信息失敗, UpdateResponse為null
break;
default:
break;
}
}
});
XiaomiUpdateAgent.update(this);
檢查更新SDK如何檢查新版本?
當(dāng)調(diào)用SDK的update()方法時(shí),SDK會(huì)獲取當(dāng)前應(yīng)用的包名,版本號(hào),簽名和當(dāng)前版本的MD5,上傳至服務(wù)器,并帶上相應(yīng)的機(jī)型信息,由服務(wù)器進(jìn)行匹配過濾,并將更新信息和下載地址等返回給SDK來處理。
檢查更新SDK申請(qǐng)的權(quán)限對(duì)應(yīng)哪些功能?
·android.permission.WRITE_EXTERNAL_STORAGE允許許將下載的apk文件保存到sd卡中
·android.permission.ACCESS_NETWORK_STATE
·android.permission.INTERNET
·android.permission.ACCESS_WIFI_STATE以上三個(gè)權(quán)限允許SDK訪問手機(jī)的網(wǎng)絡(luò)連接狀態(tài),判斷是否更新
·android.permission.READ_PHONE_STATE用于讀取手機(jī)硬件信息等,用于機(jī)型過濾
·com.xiaomi.market.sdk.UPDATE用于標(biāo)明使用小米SDK
有時(shí)候測(cè)試發(fā)現(xiàn)并不是增量升級(jí)包是為什么?
由于增量更新需要通過比較當(dāng)前包和更新包的差異來產(chǎn)生DIFF文件,如果一直檢測(cè)不到增量更新,有可能是服務(wù)器上沒有當(dāng)前包的備份,無法生成DIFF文件。
增量更新有哪些要求?
·只要用戶安裝的App版本,曾經(jīng)在小米應(yīng)用商店發(fā)布過,在下載更新時(shí),SDK就會(huì)自動(dòng)下載增量包更新。無論與最新版之間相隔多少個(gè)版本,小米應(yīng)用商店的服務(wù)器都會(huì)自動(dòng)計(jì)算出合適的增量包。
·提醒1:增量更新只在由SDK負(fù)責(zé)下載更新時(shí)生效
·提醒2:因?yàn)樵隽堪傻挠|發(fā),是首次有用戶請(qǐng)求該增量包時(shí)發(fā)生的,因此,新版本剛剛發(fā)布時(shí),會(huì)有極少部分用戶下載到的仍然是完整包,后面我們會(huì)優(yōu)化增量包的生成策略