Android-приложение Play Core библиотеки в обновлении приложения не работает должным образом

Я реализовал обновление Google Play inApp, используя базовую библиотеку Play Core. При отправке нового обновления приложение показывает обязательное уведомление об обновлении с использованием этой библиотеки, загружает новое обновление и показывает, что обновление завершено. Но после того, как я выхожу из приложения и перезапускаю его, круг продолжается. Он показывает, что обновление доступно, пожалуйста, обновите уведомление снова. Думаю после скачивания обновление вообще не происходит. Пожалуйста, помогите мне с этим вопросом.

fun initUpdate() {
        val appUpdateManager = AppUpdateManagerFactory.create(this)
        val appUpdateInfoTask = appUpdateManager.appUpdateInfo
        appUpdateInfoTask.addOnSuccessListener { appUpdateInfo ->
            if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)
            ) {
                appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType. IMMEDIATE, this, MY_REQUEST_CODE
                )}}}override fun initComponents() {
        initUpdate()
        //rest of the code//
    }

person Sayandh_Acube    schedule 04.09.2019    source источник


Ответы (2)


У меня была такая же проблема, я заработал после подписания приложения (с обновленной более низкой версией приложения) с помощью производственного выпуска KeyStore. Я использовал хранилище ключей отладки, чтобы подписать его ранее.

person Isanaka    schedule 29.01.2020

Вот код для получения обновления в приложении.

    override fun onResume() {
        super.onResume()
        checkForVersionUpdate()
    }

private fun checkForVersionUpdate() {
        val appUpdateInfoTask = appUpdateManager.getAppUpdateInfo()
        // Checks that the platform will allow the specified type of update.
        appUpdateInfoTask.addOnSuccessListener { appUpdateInfo ->
            if (appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
                startUpdateFlow(appUpdateInfo)
            } else if ((appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE))) {
                startUpdateFlow(appUpdateInfo)
            }
        }
    }


private fun startUpdateFlow(appUpdateInfo: AppUpdateInfo) {
        try {
            appUpdateManager.startUpdateFlowForResult(
                    appUpdateInfo,
                    AppUpdateType.IMMEDIATE,
                    this,
                    REQUEST_IMMEDIATE)
        } catch (e: IntentSender.SendIntentException) {
            e.printStackTrace()
        }
    }

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == REQUEST_IMMEDIATE && resultCode == RESULT_CANCELED) {
            checkForVersionUpdate();
        }
    }
person Mehul Kabaria    schedule 04.09.2019