java - 应用内更新不起作用 应用程序也在 Play 商店中上线吗?

标签 java android in-app-update

我正在实现应用内更新功能,因为我使用 google play 核心库作为实现“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");
            }
        }

    });
}

最佳答案

确保您的类实现 InstallStateUpdatedListener

代码 fragment :

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

关于java - 应用内更新不起作用 应用程序也在 Play 商店中上线吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57002458/

相关文章:

java - Hibernate 类转换异常

java - getSupportFragmentManager() 在 Activity 扩展 fragment 中未定义

android - 如何在 App 更新中模拟 onFailureListener & resultCode != Activity.RESULT_OK?

android - 为什么 In-App 更新失败并返回 resultCode 0?

java - Ebean EmbeddedId 映射列到 ManyToOne 关系

java - 如何修改集合反序列化器,以便它生成按给定条件过滤掉的集合?

android - 2 布局 1 Activity android

android - 使用不同 NDL 编译的 C/C++ 代码的向前/向后兼容性?

android - InApp 更新功能不起作用我收到此错误 com.google.android.play.core.install.InstallException : Install Error: -3

java - Android-Image-Cropper 转圈