1

アプリケーションで Google アプリ内アップデートが機能していることを確認できません。これが私のコードを実装した方法ですが、 appUpdateInfo は常に UPDATE_NOT_AVAILABLE (1) を返します。

onCreate メソッド

appUpdateManager = AppUpdateManagerFactory.create(this)
        appUpdateManager.registerListener(this)
        val appUpdateInfoTask = appUpdateManager.appUpdateInfo

    appUpdateInfoTask.addOnSuccessListener {appUpdateInfo ->
        try {
            if(appUpdateInfoTask.isComplete){
                if (appUpdateInfo.updateAvailability() == UPDATE_AVAILABLE) {
                    ToastUtils.showShort("Update Available" + appUpdateInfo.isUpdateTypeAllowed(FLEXIBLE))
                    if(appUpdateInfo.isUpdateTypeAllowed(FLEXIBLE)){
                        ToastUtils.showShort("Flexi Update")
                        requestAppUpdate(appUpdateManager.appUpdateInfo.getResult(), FLEXIBLE)
                    }else if(appUpdateInfo.isUpdateTypeAllowed(IMMEDIATE)){
                        ToastUtils.showShort("Immediate Update")
                        requestAppUpdate(appUpdateManager.appUpdateInfo.getResult(), IMMEDIATE)
                    }
                }
            }
        } catch (e: Exception) {
            Log.e("Update Exception", e.message)
        }
    }

onResume メソッド

override fun onResume() {
        super.onResume()
        val appUpdateInfoTask = appUpdateManager.appUpdateInfo
        appUpdateInfoTask.addOnCompleteListener {
            Log.e("Update Complete", "Complete")
        }
        appUpdateInfoTask.addOnSuccessListener {
            if(appUpdateInfoTask.isComplete){
                if (it.installStatus() == DOWNLOADED) {
                    showUpdateSnackbar()
                }
            }
        }
    }

onDestroy メソッド

override fun onDestroy() {
        super.onDestroy()
        appUpdateManager.unregisterListener(this)
    }

onActivityResult メソッド

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == REQUEST_CODE_TO_FETCH_UPDATES) {
            when (resultCode) {
                Activity.RESULT_OK -> {
                    ToastUtils.showShort("Access to Update Granted")
                }
                Activity.RESULT_CANCELED -> {
                    ToastUtils.showShort("Access to Update Cancelled")
                }
                ActivityResult.RESULT_IN_APP_UPDATE_FAILED -> {
                    ToastUtils.showShort("Access to Update Failed")
                }
            }
        }
    }

キーポイント

  1. Android App Bundle Format を使用して内部テスト トラックにアプリをアップロードしました
  2. 上記の onCreate で記述したコードが UPDATE_NOT_AVAILABLE を返すと、ストア (内部トラック) でアプリの更新を利用できます。
  3. Google Play Developers API を使用してアップロードし、inAppUpdatePriority5に設定しました

クエリ:

  1. ストアで何度もアプリの更新を試みましたが、このコードを介してアプリの更新が表示されません。なぜですか?
  2. 内部テスト トラックからテストして、実際の FLEXIBLE または IMMEDIATE アップデートを確認するにはどうすればよいですか? その構成を設定する方法はどこにありますか?
4

1 に答える 1