Диалоговое окно InAppUpdate появляется каждый раз, даже если я нажимаю кнопку обновления.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Диалоговое окно InAppUpdate появляется каждый раз, даже если я нажимаю кнопку обновления.

Сообщение Anonymous »

У меня есть приложение, опубликованное в магазине Play с кодом версии 3. В новой версии я хочу реализовать функцию обновления приложения, поэтому в build.gradle я добавляю:

Код: Выделить всё

implementation 'com.google.android.play:core:1.8.2'
И в основной деятельности:

Код: Выделить всё

public class MainActivity extends BaseActivity {
//...
private AppUpdateManager mAppUpdateManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);

//....
checkForUpdate();
}

/**
* check for update
*/
private void checkForUpdate() {
// Creates instance of the manager.
mAppUpdateManager = AppUpdateManagerFactory.create(this);
mAppUpdateManager.registerListener(state -> {
if (state.installStatus() == InstallStatus.DOWNLOADED) {
// After the update is downloaded, show a notification
// and request user confirmation to restart the app.
popupSnackbarForCompleteUpdate();
}
});

// Returns an intent object that you use to check for an update.
Task appUpdateInfoTask = mAppUpdateManager.getAppUpdateInfo();

// Checks that the platform will allow the specified type of update.
appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
//&& appUpdateInfo.clientVersionStalenessDays() != null
//&& appUpdateInfo.clientVersionStalenessDays() >= DAYS_FOR_FLEXIBLE_UPDATE
&& appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {

// Request the update.
try {
mAppUpdateManager.startUpdateFlowForResult(
// Pass the intent that is returned by 'getAppUpdateInfo()'.
appUpdateInfo,
// Or 'AppUpdateType.IMMEDIATE' for flexible updates.
AppUpdateType.FLEXIBLE,
// 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) {
Toast.makeText(this, R.string.update_failed, Toast.LENGTH_SHORT).show();
}
}
});
}

/**
* Displays the snackbar notification and call to action.
*/
private void popupSnackbarForCompleteUpdate() {
final Snackbar snackbar =
Snackbar.make(
findViewById(R.id.activity_main_layout),
R.string.an_update_has_been_just_downloaded,
Snackbar.LENGTH_INDEFINITE);
snackbar.setAction(R.string.install, view -> mAppUpdateManager.completeUpdate());
snackbar.setActionTextColor(
ContextCompat.getColor(this, R.color.color_snackbar_action_text_color));
snackbar.show();
}
}
Чтобы иметь возможность протестировать эту функцию, я меняю код версии на меньшее число, чем тот, который опубликован в Playstore (в данном случае 2, а приложение опубликовано с 3). Когда я запускаю свой приложение, оно показывает мне диалоговое окно для обновления приложения, и когда я нажимаю кнопку обновления, обновление запускается и устанавливается без каких-либо ошибок, но когда приложение перезапускается, оно снова показывает мне диалоговое окно обновления, и приложение, похоже, не обновляется, я не знаю, является ли это ошибкой в ​​моем приложении, или мне следует загрузить приложение в магазин Play Store, чтобы оно работало правильно.
Я использую пакет приложений (.aab)

Подробнее здесь: https://stackoverflow.com/questions/643 ... ate-button
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»