【问题标题】:in-app update is not working app is also live on play store?应用内更新不起作用 应用也在 Play 商店中上线?
【发布时间】:2019-07-12 07:49:57
【问题描述】:

我正在实现应用内更新功能,为此我使用 google play 核心库作为 implementation 'com.google.android.play:core:1.6.1
此代码始终返回没有可用的更新。

private void checkUpdate() {
    appUpdateManager = AppUpdateManagerFactory.create(this);
    Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
    appUpdateInfoTask.addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
        @Override
        public void onSuccess(AppUpdateInfo appUpdateInfo) {
            if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
                    && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
                try {
                    appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE, SplashActivity.this, 102);
                } catch (IntentSender.SendIntentException e) {
                    e.printStackTrace();
                }
                Log.e("UPDATE", "yes");
            } else {
                goToActivity();
                Log.e("UPDATE", "no");
            }
        }

    });
}

【问题讨论】:

  • 我们不需要任何权限。在应用程序更新将在测试版中工作
  • @SumitKumawat 这在 beta 模式下不起作用你能帮我考虑一下吗?你有什么代码可以让我使用吗?
  • 你解决了这个问题@vivekmittal 吗?

标签: java android in-app-update


【解决方案1】:

确保你的班级实现InstallStateUpdatedListener

代码sn-p:

 private var appUpdateManager: AppUpdateManager? = null
        private var appUpdateInfo: AppUpdateInfo? = null

        private val updateAvailable = MutableLiveData<Boolean>().apply {
            value = false
        }


    appUpdateManager?.appUpdateInfo?.addOnSuccessListener {
                    if (it.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE &&
                            it.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
                        appUpdateInfo = it
                        updateAvailable.value = true
                    } else {
                        updateAvailable.value = false
                    }
                }

        appUpdateManager?.appUpdateInfo?.addOnSuccessListener { appUpdateInfo ->
                    if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
                        updateAvailable.value = true
                    } else if (appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
                        if (appUpdateInfo.installStatus() == InstallStatus.DOWNLOADED) {
                            onDownloadDone()
                        }
                    }
                }

                updateAvailable.observe(this, Observer {
                    if (it) {
                        pAppUpdate.show()
                    } else {
                        pAppUpdate.gone()
                    }
                })


                pUpdateNowButton.setOnClickListener {
                    if (updateAvailable.value == true) {

                appUpdateManager?.startUpdateFlowForResult(it, AppUpdateType.FLEXIBLE, activity, REQUEST_CODE_FLEXI_UPDATE)
                    }
                }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多