API обновления в приложении android работает не так, как я ожидал - PullRequest
0 голосов
/ 02 февраля 2020
    @Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    appUpdateManager = AppUpdateManagerFactory.create(this);
    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(IMMEDIATE)) {
            // Request the update.
            try {
                appUpdateManager.startUpdateFlowForResult(
                        // Pass the intent that is returned by 'getAppUpdateInfo()'.
                        appUpdateInfo,
                        // Or 'AppUpdateType.FLEXIBLE' for flexible updates.
                        IMMEDIATE,
                        // The current activity making the update request.
                        this,
                        // Include a request code to later monitor this update request.
                        MY_REQUEST_CODE);

            }


            catch(IntentSender.SendIntentException e){
                e.printStackTrace();
            }


        }

    });

}

 @Override
protected void onResume() {
    super.onResume();

    appUpdateManager
            .getAppUpdateInfo()
            .addOnSuccessListener(
                    appUpdateInfo -> {
                        if (appUpdateInfo.updateAvailability()
                                == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
                            try {
                                appUpdateManager.startUpdateFlowForResult(
                                        // Pass the intent that is returned by 'getAppUpdateInfo()'.
                                        appUpdateInfo,
                                        // Or 'AppUpdateType.FLEXIBLE' for flexible updates.
                                        IMMEDIATE,
                                        // The current activity making the update request.
                                        this,
                                        // Include a request code to later monitor this update request.
                                        MY_REQUEST_CODE);

                            }


                            catch(IntentSender.SendIntentException e){
                                e.printStackTrace();
                            }
                        }
                    });
}

    @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == MY_REQUEST_CODE) {
        if (resultCode != RESULT_OK) {
            Log.e("Main", "onActivityResult: app download failed");
        }
    }
}

Это весь код из моей MainActivity. Я ожидал, что это будет работать так, как оно исходит от android документов. Но, похоже, ничего не делает. Чтобы проверить это, я выпустил быстрое обновление и подождал, пока оно не будет одобрено. Я открыл его, надеясь, что его заблокирует полный экран, сказав, что я должен обновить, но я мог свободно использовать приложение.

1 Ответ

1 голос
/ 03 февраля 2020

Это на самом деле просто случайно сработало около 36 часов спустя, когда я снова открыл приложение. Должно быть примерно 24 часа с момента начала обновления до момента его получения API.

...