简体   繁体   English

应用内更新无法正常运行应用还可以在Play商店中使用吗?

[英]in-app update is not working app is also live on play store?

I am implementing in-app update feature, for that I am using google play core library as implementation 'com.google.android.play:core:1.6.1 . 我正在实现应用内更新功能,为此,我正在将Google Play核心库用作implementation 'com.google.android.play:core:1.6.1
this code always returns no update available. 此代码始终返回没有可用的更新。

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");
            }
        }

    });
}

Make sure your class implement InstallStateUpdatedListener 确保您的类实现InstallStateUpdatedListener

Code snippet: 程式码片段:

 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)
                    }
                }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM