この値を設定するためにPlaystoreコンソールで利用できるオプションはありますか?
こちらが公式ドキュメントです。コード:
// Creates instance of the manager.
AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(context);
// Returns an intent object that you use to check for an update.
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
// Checks that the platform will allow the specified type of update.
appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
// For a flexible update, use AppUpdateType.FLEXIBLE
&& appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
// Request the update.
}
});
どのように私たちは知っていますか:
appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)
上記のタイプをどこに設定しますか?公式ドキュメントには関連する説明はありません。
AppUpdateInfo.class:
public final boolean isUpdateTypeAllowed(int var1) {
if (var1 == 0) {
return this.f != null;
} else if (var1 == 1) {
return this.e != null;
} else {
return false;
}
}
ここで、f
およびe
はPendingIntent
であり、メソッドはそれらの値に基づいてtrue
またはfalse
を返します。
AppUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)の用途は何ですか?
これは非常によくある質問です。
多くの(私も含めて)は、これを動的にどこかに設定できる値として解釈しました。 Google Play Consoleで。
しかし、そうではないようです。これは、ダイアログを表示するためにデバイスの条件が満たされているかどうかを判断するローカルチェックです。
即時更新と柔軟更新のどちらを表示するかを動的に設定する場合は、自分で提供する必要があります。バックエンドから。
appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)
appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)
Playストアのライブアプリと比較して、versionCode
を何度も下げようとしました。
たぶん次の更新で、isUpdateTypeAllowed
についてGoogleが説明します。なぜなら、今のところそれは曖昧な唯一の呼び出しだからです。
呼び出す更新の種類を選択するのは開発者の責任です。
モードはアプリのコードで決定されます。
詳細については、こちらをご覧ください https://developer.Android.com/guide/app-bundle/in-app-updates#start_update
更新タイプ(IMMEDIATEまたはFLEXIBLE)は、Play Consoleではなく、アプリ内で設定されます。
そもそも必要なのは、アプリの更新の利用可能性チェックだけです。
appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
このチェックが成功した場合は、自分で更新フローを開始する必要があります
appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE,
または
appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.FLEXIBLE,
このタイプに関しては、更新はバックグラウンドまたはPlayストアオーバーレイによるブロックビューにインストールされます。
柔軟なアプリの更新がトリガーされ、ユーザーがアプリを離れた場合、柔軟な更新がバックグラウンドで実行されているか、終了しているかを、次回の起動時に確認する必要があります。
https://developer.Android.com/guide/app-bundle/in-app-updates