智能客服
你问我答,随时在线为你解决问题

























在应用启动完成后或用户在应用中主动检查应用新版本时,应用需要调用HMS Core SDK的升级接口检测华为应用市场是否有新版本应用。如果需要升级,HMS Core SDK将拉起升级提示框提示用户在华为应用市场升级应用。
您在调用AppUpdateClient.showUpdateDialog方法时传入强制更新按钮参数mustBtnOne的取值不同会带来不同的用户体验。
- implementation 'com.huawei.hms:appservice:{version}'
{version}替换为APP Service的最新版本号,请参见添加编译依赖。

本功能涉及的关键开发步骤如下:
- public void checkUpdate() {
- AppUpdateClient client = JosApps.getAppUpdateClient(this);
- client.checkAppUpdate(this, callback);
- }
- private static class Callback implements CheckUpdateCallBack {
- private WeakReference<Context> mContextWeakReference;
- public Callback(Context context) {
- mContextWeakReference = new WeakReference<>(context);
- }
- @Override
- public void onUpdateInfo(Intent intent) {
- if (intent != null) {
- // 更新状态信息
- int status = intent.getIntExtra(UpdateKey.STATUS, -99);
- Log.i(TAG, "check update status is:" + status);
- // 返回错误码
- int rtnCode = intent.getIntExtra(UpdateKey.FAIL_CODE, -99);
- // 返回失败信息
- String rtnMessage = intent.getStringExtra(UpdateKey.FAIL_REASON);
- // 强制更新应用时,弹出对话框后用户是否点击“退出应用”按钮
- boolean isExit = intent.getBooleanExtra(UpdateKey.MUST_UPDATE, false);
- Log.i(TAG, "rtnCode = " + rtnCode + "rtnMessage = " + rtnMessage);
-
- Serializable info = intent.getSerializableExtra(UpdateKey.INFO);
- // 如果info属于ApkUpgradeInfo类型,则拉起更新弹框
- if (info instanceof ApkUpgradeInfo) {
- Context context = mContextWeakReference.get();
- if (context != null) {
- // showUpdateDialog接口中最后一个字段传入不同取值会带来不同的用户体验,具体请参考本文档的场景描述,此处以false为例
- JosApps.getAppUpdateClient(context).showUpdateDialog(context,(ApkUpgradeInfo) info,false);
- }
- Log.i(TAG, "check update success and there is a new update");
- }
- Log.i(TAG, "check update isExit=" + isExit);
- if (isExit) {
- // 是强制更新应用,用户在弹出的升级提示框中选择了“退出应用”,处理逻辑由您自行控制,这里只是个例子
- System.exit(0);
- }
- }
- }
-
- @Override
- public void onMarketInstallInfo(Intent intent) {
-
- }
-
- @Override
- public void onMarketStoreError(int i) {
-
- }
-
- @Override
- public void onUpdateStoreError(int i) {
-
- }
- }
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功

