Inapp обновление android приложение установлено, но я получаю ту же версию - PullRequest
0 голосов
/ 17 января 2020

Я уменьшаю сборку и имя версии, поэтому сборка версии и имя версии ниже, чем версия в магазине Play, я внедряю обновление версии приложения Google, все работает нормально, загрузка завершена, поэтому я добавляю кнопку, чтобы сообщить пользователю о перезапуске приложения. и когда он щелкает по нему, открывается страница установки и перезапускается приложение, но при запуске приложения та же версия, что и раньше, поэтому установка не работает: (

   private fun showInAppUpdate() {

    mAppUpdateManager = AppUpdateManagerFactory.create(activity);

    mAppUpdateManager.registerListener(installStateUpdatedListener);


    // Creates instance of the manager.
    appUpdateManager = AppUpdateManagerFactory.create(activity)

    // Returns an intent object that you use to check for an update.
    val appUpdateInfoTask = appUpdateManager.appUpdateInfo

    // Checks that the platform will allow the specified type of update.
    appUpdateInfoTask.addOnSuccessListener { appUpdateInfo ->
        val a = appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
        val b = appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)


        if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
            // For a flexible update, use AppUpdateType.IMMEDIATE
            && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)
        ) {
            // To avoid crash when startUpdateFlowForResult is called two times (by accident)
            try {

                appUpdateManager.startUpdateFlowForResult(
                    // Pass the intent that is returned by 'getAppUpdateInfo()'.
                    appUpdateInfo,
                    // Or 'AppUpdateType.FLEXIBLE' for flexible updates.
                    AppUpdateType.FLEXIBLE,
                    // The current activity making the update request.
                    activity,
                    // Include a request code to later monitor this update request.
                    INAPP_UPDATE_REQUEST_CODE)

            }
            catch (e : Exception){
                e.printStackTrace()
            }

        }
        else {
            Log.e("", "checkForAppUpdateAvailability: something else");
        }
    }
  }




 val installStateUpdatedListener = object : InstallStateUpdatedListener {
    override fun onStateUpdate(state: InstallState) {
        if (state.installStatus() == InstallStatus.DOWNLOADED) {
            popupSnackbarForCompleteUpdate()
        } else if (state.installStatus() == InstallStatus.INSTALLED) {
            mAppUpdateManager?.unregisterListener(this)

        } else {
            // Download or install in progress
        }
    }
}

  /* Displays the snackbar notification and call to action. */
  fun popupSnackbarForCompleteUpdate() {
     val snackBar =  Snackbar.make(
       activity!!.findViewById(R.id.home_root),
        HtmlCompat.fromHtml(this.resources.getString(R.string.inapp_downlaod_complete), 
   HtmlCompat.FROM_HTML_MODE_LEGACY),
        Snackbar.LENGTH_INDEFINITE
    )
    snackBar.setTextColor(Color.WHITE)
    snackBar
        .apply {
            setAction(activity!!.resources.getString(R.string.inapp_restart)) { 
  appUpdateManager.completeUpdate() }
              setActionTextColor(Color.GREEN)
            show()
        }
}




    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)


    if (requestCode == INAPP_UPDATE_REQUEST_CODE) {
        if (resultCode != AppCompatActivity.RESULT_OK) {

            mAppUpdateManager?.unregisterListener(installStateUpdatedListener)
        }
    }
}

, почему приложение не обновляется с помощью версию в магазине Play?

Спасибо за помощь

1 Ответ

1 голос
/ 17 января 2020

В основном происходит то, что вы запускаете свое первое приложение из своего кода, а затем пытаетесь обновить это приложение из магазина. В конечном итоге это будут 2 разных приложения (поскольку одно из вашего кода будет отладочной и неподписанной); следовательно, вы не увидите обновления. Если вы хотите проверить это, вам нужно будет подписать приложение и установить его на свой телефон, а не просто запустить его из кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...