0

バージョン ビルドと名前をデクリメントするので、バージョン ビルドとバージョン名は Play ストアのバージョンよりも低くなります。Google の inapp バージョン アップデートを実装します。すべて正常に動作し、ダウンロードが完了したので、ユーザーにアプリケーションの再起動を通知するボタンを追加します。彼はそれをクリックすると、インストールページが表示され、アプリケーションが再起動しますが、アプリケーションが起動すると、以前と同じバージョンになるため、インストールは機能しません:(

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

アプリケーションがプレイストアのバージョンで更新されないのはなぜですか?

ご協力ありがとうございました

4

1 に答える 1