接入 SDK 之后,您可以根据业务需求,设置升级白名单,使用 SDK 进行升级检测、并提示用户。
设置白名单用户 ID:
MPLogger.setUserId("您的白名单ID");
快速检测新版本,并弹框提示:
MPUpgrade mMPUpgrade = new MPUpgrade();
mMPUpgrade.fastCheckNewVersion(activity, drawable);
快速检测新版本,仅返回检测结果:
MPUpgrade mMPUpgrade = new MPUpgrade();
// 同步方法,子线程中调用
int result = mMPUpgrade.fastCheckHasNewVersion();
if (result == UpgradeConstants.HAS_NEW_VERSION) {
// 有新版本
} else if (result == UpgradeConstants.HAS_NO_NEW_VERSION) {
// 没有新版本
} else if (result == UpgradeConstants.HAS_SOME_ERROR) {
// 错误
}
调用 fastGetClientUpgradeRes
方法获取更多详细信息:
MPUpgrade mMPUpgrade = new MPUpgrade();
// 同步方法,子线程中调用
ClientUpgradeRes clientUpgradeRes = mMPUpgrade.fastGetClientUpgradeRes();
以下返回的示例显示新版本号、下载地址等信息:
其中部分参数含义如下:
downloadURL
:下载地址guideMemo
:升级信息newestVersion
:最新版本resultStatus
:升级模式更多定制,参考以下操作示例:
实现 MPaaSCheckCallBack
接口,用于响应升级 SDK 发出的请求,如弹出提示框:
MPUpgrade mMPUpgrade = new MPUpgrade();
mMPUpgrade.setUpgradeCallback(new MPaaSCheckVersionService.MPaaSCheckCallBack() {
.........
});
调用 MPUpgrade.checkNewVersion
方法检测升级信息。
MPUpgrade
内部封装了 MPaaSCheckVersionService
的调用;您也可以自行定制实现。有关 MPaaSCheckVersionService
和 MPaaSCheckCallBack
的介绍,请参见 API 说明。配置如下:
File dir = getApplicationContext().getExternalFilesDir("自定义目录");
MPUpgrade mpUpgrade = new MPUpgrade();
mpUpgrade.setDownloadPath(dir.getAbsolutePath());
同时在 file_path.xml
中添加以下配置:
// external-files-path 对应 getExternalFilesDir 的目录
// 请使用与您自定义的目录对应的元素,如果您不清楚该如何选择,请搜索“适配 File Provider”
<external-files-path
name="download"
path="自定义目录" />
部分 rom 在强制升级后,会出现解析包失败问题。发生该问题的原因是,在部分 rom 中,安装包时会访问相应的 App 进程。而强制升级会强制结束 App 进程,所以导致解析包失败。虽然这种 rom 定制行为本身是不符合原生 Android 的行为,但您仍可以通过以下方式进行解决:设置UpgradeForceExitCallback
,在 needForceExit
返回 false
即可。
实现回调。
public class UpgradeForceExitCallbackImpl implements UpgradeForceExitCallback {
@Override
public boolean needForceExit(boolean forceExitApp, MicroApplicationContext context) {
// 返回 false,就不强制杀掉进程,不会有安装包解析失败问题;返回 true,需要自行对进程的退出进行处理,会走到下面 doForceExit 方法中。
return false;
}
@Override
public void doForceExit(boolean forceExitApp, MicroApplicationContext context) {
// 如果需要关闭进程,则需要上面 needForceExit 返回 true,然后在本方法内自行关闭进程。
}
}
设置回调。
MPUpgrade mpUpgrade = new MPUpgrade();
mpUpgrade.setForceExitCallback(new UpgradeForceExitCallbackImpl());
注意:
MPUpgrade
实例设置回调或请求升级。
在文档使用中是否遇到以下问题
更多建议
匿名提交