0

Java で記述された Android アプリのアプリ内更新ダイアログを実装しようとしています。

アップデートが利用可能かどうかを確認するために切り取られたコードは、Android 開発者ページから取得されます。Main アクティビティの onResume() メソッドで呼び出されます。

private void checkForUpdate() {
        AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(this);

// 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 -> {
            Log.d(TAG, "AppUpdateInfo: " + appUpdateInfo);
            if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
                    // can be changed to AppUpdateType.INTERMEDIATE
                    && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
                // Request the update.
                try {
                    appUpdateManager.startUpdateFlowForResult(
                            // Pass the intent that is returned by 'getAppUpdateInfo()'.
                            appUpdateInfo,
                            // Or 'AppUpdateType.FLEXIBLE' for flexible updates.
                            AppUpdateType.IMMEDIATE,
                            // The current activity making the update request.
                            this,
                            // Include a request code to later monitor this update request.
                            APP_UPDATE_REQUEST_CODE);
                } catch (IntentSender.SendIntentException e) {
                    e.printStackTrace();
                }

            }
        });
    } 

Google Play Console からアプリの新しいバージョンをリリースします。2 つのクローズド テストトラックがあります。

  • 開発トラック -> ユーザー: 開発者、現在のバージョン: 105
  • テスター トラック -> ユーザー: テスター、現在のバージョン: 99

AppUpdateInfo を開発者デバイスの Logcat に出力すると、availableVersionCode は 88 になります。同時に、現在のバージョン (105) が Google Play ストアに表示されます。

D/MainActivity: AppUpdateInfo: AppUpdateInfo{packageName=package.app, availableVersionCode=88, updateAvailability=1, installStatus=0, clientVersionStalenessDays=null, updatePriority=0, bytesDownloaded=0, totalBytesToDownload=0, additionalSpaceRequired=0, assetPackStorageSize=0, immediateUpdateIntent=null、flexibleUpdateIntent=null、immediateDestructiveUpdateIntent=null、flexibleDestructiveUpdateIntent=null}

バージョンが 1 つ増えてから、過去にバージョン 88 がありましたが、現在はバージョン 105 と 99 のみが有効です。

今、なぜ AppUpdateInfo が最新バージョン 105 を受信しないのか疑問に思っています。前述のように、更新は Google Play コンソールを通じて行われます。私の推測では、アプリ内更新機能は、Google Play Developer APIを介してのみコミットされた更新情報を受け取ります。

誰かが同じ問題を経験していて、私の推測を確認できますか? どんな助けでも大歓迎です。

4

0 に答える 0