微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AppUpdateManager.startUpdateFlowForResult 导致 IntentSender$SendIntentException

如何解决AppUpdateManager.startUpdateFlowForResult 导致 IntentSender$SendIntentException

应用内更新在我的应用中多次可用。用户可以在打开应用时第一次取消更新,并选择手动从另一个片段触发应用内更新。

根据 Google 文档,我每次都创建了新实例来触发更新,但它仅适用于第一个。下一次,它导致 AppUpdateManager.startUpdateFlowForResult 导致 IntentSender$SendIntentException

private void init() {
        appUpdateManager = AppUpdateManagerFactory.create(mContext);
        appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();

    }

 public void checkAppUpdate() {
            appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
                .....................................
                .....................................
                startAppUpdate(appUpdateInfo);
   
        }

private void startAppUpdate(AppUpdateInfo appUpdateInfo) {
        Log.d(TAG,"startAppUpdate: starting app update");
        appUpdateManager.startUpdateFlowForResult(
                appUpdateInfo,appUpdateType,mActivityReference,mRequestCode);
    }

解决方法

Documentation 中所述,从应用程序中的不同组件触发 Google App Update API 有不同的流程。我们需要根据我们的要求触发正确的流程。

startUpdateFlow(AppUpdateInfo appUpdateInfo,Activity activity,AppUpdateOptions options)
Starts the desired update flow asynchronously.

startUpdateFlowForResult(AppUpdateInfo appUpdateInfo,int appUpdateType,IntentSenderForResultStarter starter,int requestCode)
Starts the desired update flow.

startUpdateFlowForResult(AppUpdateInfo appUpdateInfo,AppUpdateOptions options,int requestCod

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。