OTA
监听OTA新版本
若有新版本发布,则回调ACOTAUpgradeInfo
AC.otaMgr().setOtaListener(new PayloadCallback<ACOTAUpgradeInfo>() {
@Override
public void success(ACOTAUpgradeInfo upgradeInfo) {
//获取升级类型
if (upgradeInfo.getOtaMode() == 0) {
//静默升级
}else if(upgradeInfo.getOtaMode() == 1){
//用户确认升级
}else {
//强制升级
}
}
@Override
public void error(ACException e) {
//并不会走到这里
}
});
注意:控制台发布OTA版本时升级类型需要选择强制升级/静默升级(用户确认升级对于安卓设备是无法收到版本推送的),如果需要用户确认的话,可以在安卓屏幕上做弹框选择。
下载OTA文件
//upgradeInfo由上面接口获得;一般只有一个升级文件,所以取列表第一个文件
String url = upgradeInfo.getFiles().get(0).getDownloadUrl();
String checksum = upgradeInfo.getFiles().get(0).getCheckSum();
ACUtils.createSDDir("ota_download_path");
File file = null;
try {
//建议首先执行垃圾文件清理工作,防止磁盘写满升级失败,同时也防止异常情况下下载文件不完整被使用
file = ACUtils.createSDFile("ota_download_path/file_name");
} catch (IOException e) {
}
AC.fileMgr().downloadFile(file, url, checksum, new ProgressCallback() {
@Override
public void progress(double progress) {
//下载进度更新
}, new VoidCallback() {
@Override
public void success() {
//下载成功,建议调用otaMediaDone()接口通知云端下载文件成功,用于日志追踪
//同时进行设备ota升级,另升级成功后,建议在此清理已完成升级的版本文件
}
@Override
public void error(ACException e) {
//下载失败,建议清理掉当前下载的不完整文件
}
});