web-dev-qa-db-fra.com

Les mises à jour intégrées à l'application vérifient s'il s'agit de AppUpdateType.FLEXIBLE ou AppUpdateType.IMMEDIATE

Existe-t-il une option disponible dans la console Playstore pour configurer cette valeur?

Voici le doc officiel. code:

// 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.
    }
});

Comment savons-nous:

appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)

Où configurer le type ci-dessus? Aucune description pertinente n'est disponible sur le document officiel.

Dans 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 et e sont les PendingIntent et la méthode renvoie true ou false en fonction de leur valeur.

14
SANAT

Quelle est l'utilisation de appUpdateInfo.isUpdateTypeAllowed (AppUpdateType.IMMEDIATE)?

C'est une question très commune.

Beaucoup (moi y compris) ont interprété cela comme une valeur qui pouvait être définie dynamiquement quelque part, par exemple dans la console Google Play.

Cependant, cela ne semble pas être le cas. Il s'agit d'une vérification locale qui détermine si les conditions sur le périphérique sont remplies pour afficher la boîte de dialogue.

Si vous souhaitez configurer dynamiquement l'affichage des mises à jour immédiates ou flexibles, vous devrez le fournir vous-même, par ex. de votre backend.

Pour plus d'informations: https://medium.com/@jplipata/undocumented-Android-in-app-updates-a95efb9b7bd8?source=friends_link&sk=e8085150daa555ea80d07e8419b5341e

5
tenprint
appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)

appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)

J'ai essayé plusieurs fois de baisser le versionCode par rapport à l'application en direct sur Play Store.

Peut-être que dans la prochaine mise à jour, Google expliquera le isUpdateTypeAllowed car pour le moment c'est un seul appel ambigu.

Il appartient au développeur de choisir le type de mise à jour à invoquer.

Le mode est déterminé par l'application dans le code.

Veuillez consulter pour plus de référence https://developer.Android.com/guide/app-bundle/in-app-updates#start_update

0
mini developer

Le type de mise à jour (IMMÉDIATE ou FLEXIBLE) est défini dans l'application, pas dans la console de jeu.

Seul un contrôle de disponibilité de la mise à jour de l'application est nécessaire en premier lieu:

appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
    if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE

Si cette vérification réussit, vous devez démarrer le flux de mise à jour par vous-même

appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE,

ou

appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.FLEXIBLE,

concernant ce type, la mise à jour sera installée en arrière-plan ou dans une vue de blocage par une superposition Play Store.

Lorsqu'une mise à jour flexible de l'application est déclenchée et que l'utilisateur quitte l'application, vous devez vérifier au prochain lancement si une mise à jour flexible s'exécute en arrière-plan ou est terminée.

https://developer.Android.com/guide/app-bundle/in-app-updates

0
Benjamin Stürmer