L'invitation à la mise à niveau est un parcours utilisateur qui présente les principales nouvelles fonctionnalités incluses dans la mise à niveau majeure de l'OS Android actuellement disponible.
Le flux vise à inciter les utilisateurs à mettre à niveau leur appareil vers la dernière version du système d'exploitation.
Lorsqu'une mise à niveau du système d'exploitation est en attente d'approbation par l'utilisateur, celui-ci reçoit une notification push affichant les nouvelles fonctionnalités et l'invitant à effectuer la mise à niveau.
Pour activer l'invitation à la mise à niveau pour votre système d'exploitation Android, inscrivez-vous à l'aide du formulaire de demande d'activation de l'invitation à la mise à niveau Android.
Personnaliser l'expérience d'invitation à passer à un abonnement
Vous pouvez personnaliser l'expérience d'invitation à la mise à niveau de différentes manières :
- Supprimez les fonctionnalités non pertinentes.
- Mettez à jour la langue dans les blocs de texte.
- Modifiez les animations, les couleurs et les polices pour les adapter à votre marque.
Pour personnaliser le flux, consultez les consignes du guide de style d'invitation à la mise à niveau et incluez vos informations de personnalisation dans le formulaire d'invitation de demande d'activation de la mise à niveau d'Android.
Guide de style pour les invitations de mise à niveau
Utilisez ce guide de style pour modifier l'apparence de l'invitation à la mise à niveau en fonction de votre propre marque (écrans, couleurs, polices). Nous vous recommandons vivement de conserver les tailles et la structure proches de la conception d'origine.
Le flux d'invitation à la mise à niveau comprend les trois composants suivants :
- Écran d'introduction
- Écran des fonctionnalités
- Écran de fin
Une animation sur chaque écran permet d'expliquer chaque fonctionnalité.
Écran d'introduction
L'écran d'introduction contient une courte animation qui souhaite la bienvenue à l'utilisateur et l'encourage à démarrer le parcours affiché sur l'écran d'introduction.
Mise en page
L'animation de l'appareil se compose toujours des éléments suivants :
- Arrière-plan blanc et formes colorées
- Cadre de l'appareil
- Contenu de l'UI
Style
Si vous choisissez d'adapter le style Material You, vous pouvez utiliser les couleurs et les formes par défaut illustrées dans l'exemple.
Si vous utilisez votre propre couleur de marque, assurez-vous qu'elle s'accorde bien avec l'arrière-plan de l'UI.
Mouvement
Option 1 : Avec une horloge sur l'écran d'accueil
- Des chiffres s'affichent à l'écran.
- Les chiffres se déplacent vers le centre et diminuent de taille. Le cadre du téléphone mobile s'affiche.
- La taille du téléphone diminue. Les formes commencent à apparaître à l'écran.
- L'animation est terminée. Les formes continuent de bouger doucement.
Option 2 : Aucune horloge sur l'écran d'accueil
- Le téléphone mobile apparaît à l'écran.
- Le téléphone se déplace vers le centre et augmente de taille. Les formes commencent à apparaître à l'écran.
- Le téléphone atteint sa taille maximale et les formes continuent de bouger.
Écran des fonctionnalités
Chaque écran de fonctionnalité met en avant une fonctionnalité du nouvel OS.
Mise en page
L'animation de l'appareil se compose toujours des éléments suivants :
- Arrière-plan coloré
- Cadre de l'appareil
- Contenu de l'UI
Style
- Choisissez une couleur d'arrière-plan qui s'accorde bien avec le contenu de l'interface utilisateur et avec l'apparence générale.
- Sur les écrans, définissez des tailles de police facilement lisibles. Si nécessaire, définissez des tailles de police plus grandes.
Mouvement
Enregistrez une animation du flux de chaque fonctionnalité, y compris les interactions tactiles. Exportez les enregistrements au format Lottie.
Écran de fin
L'écran de conclusion complète le flux. Cela indique aux utilisateurs qu'ils ont parcouru tous les écrans.
Mise en page
L'animation de l'appareil se compose toujours des éléments suivants:
- Demi-cercle sur l'arrière-plan (plus des formes animées)
- Cadre de l'appareil
- Contenu de l'UI
Style
- Sélectionnez une couleur d'arrière-plan qui correspond bien au contenu de l'interface utilisateur et à l'apparence générale.
- Utilisez une forme en demi-cercle.
Mouvement
Suivez la procédure standard d'animation de l'écran de fin :
- Le téléphone portable remonte un peu.
- Un cercle apparaît en arrière-plan.
- Les formes surgissent de derrière le téléphone mobile.
- Les formes s'échappent de l'arrière-plan comme des confettis.
Tester le flux d'invitation de mise à niveau
- Sur l'appareil Android, accédez à Paramètres > Google > Débogage de la mise à niveau de la partie.
- Préparez le déclencheur de l'invitation à la mise à niveau pour l'OS de l'appareil concerné (selon la version d'OS actuelle et le flux d'invitation à la mise à niveau spécifique à tester). Soit :
- Cliquez sur Écrire une fausse mise à niveau (version actuelle). (par exemple, si vous exécutez l'OS Android 13, cela déclenchera le flux de test Android 13)
- Cliquez sur Écrire la mise à niveau en attente (version actuelle + 1). (par exemple, si vous exécutez l'OS Android 12, cela déclenchera le flux de test Android 13)
- Cliquez sur Signaler la mise à niveau de l'OS.
- Cliquez sur la notification reçue ou sur Ouvrir l'invitation de mise à niveau.
Options de déclenchement de l'invitation de mise à niveau
Il existe trois façons de déclencher le flux d'invitation à la mise à niveau : 1. automatique 2. diffusion 3. Déclenchement du SDK des services Play
Automatique : notification déclenchée par Google (pour les appareils exécutant gOTA uniquement)
Pour les appareils OEM exécutant gOTA, l'intégration est automatique et aucune étape d'intégration d'invitation à une mise à niveau n'est requise. Lorsqu'une mise à niveau majeure de l'OS est détectée, une notification push est envoyée à l'appareil par les services Google Play, ce qui déclenche le flux d'invitation à la mise à niveau.
Diffusion Android - Notification déclenchée par Google (recommandé)
Une diffusion d'application est le moyen le plus simple et le plus recommandé d'intégrer le parcours d'invitation de mise à niveau.
Un broadcast receiver vous permet de déclencher le flux d'invitation de mise à niveau depuis votre application à l'aide d'un message de diffusion. La diffusion envoie une notification push à l'appareil à partir des services Google Play, ce qui déclenche le flux d'invitation à la mise à niveau.
Conditions préalables à la diffusion
Pour préparer votre application, procédez comme indiqué dans les sections suivantes.
Assurez-vous que les fichiers de configuration de votre application utilisent les valeurs suivantes :
- Une version minSdkVersion 14 ou ultérieure
- compileSdkVersion 28 ou version ultérieure
- Une usesPermission d'android.permission.RECOVERY
Envoyer l'annonce
Consultez ci-dessous les instructions permettant à l'application (ou au code) OEM d'envoyer une diffusion Android pour déclencher la notification push :
Envoyez une annonce avec l'action.
com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
Ajoutez le package
com.google.android.gms
à la diffusion.com.google.android.gms
Exigences supplémentaires
Le flux d'invitation à la mise à niveau permet également aux utilisateurs d'effectuer la mise à niveau du système d'exploitation directement à partir du flux.
Pour que cela fonctionne, exposez un intent personnalisé que Google peut appeler à partir du flux d'invitation de mise à niveau qui déclenche le téléchargement de la mise à jour.
Exemple d'utilisation de la fonctionnalité Broadcast
Voici un exemple de diffusion d'application :
Context context = getApplicationContext();
Intent upgradeInviteIntent = new Intent()
.setAction( "com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE")
.setPackage("com.google.android.gms");
.putExtra("com.google.android.gms.growth.upgradeparty.upgradeinvite.EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER", 14);
context.sendBroadcast(updateIntent);
La valeur de la clé EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER
est un entier indiquant la version du système d'exploitation en attente (dans cet exemple, la version d'Android à installer est la version 14). Cela permet de déterminer quel flux d'invitation de mise à niveau sera déclenché.
SDK Services Play – Déclenchement de flux uniquement
Le SDK tiers vous permet de déclencher le flux d'invitation à la mise à niveau à partir de votre application ou de vos propres notifications OTA. Utilisez une API externe tierce pour activer le flux d'invitation à la mise à niveau. Cette méthode est moins recommandée.
Prérequis
Pour préparer votre application, procédez comme indiqué dans les sections suivantes.
Assurez-vous que le fichier de compilation de votre application utilise les valeurs suivantes :
- Une version minSdkVersion 14 ou ultérieure
- compileSdkVersion 28 ou version ultérieure
Configurer votre application
Pour configurer votre application :
1. Extract the library from the provided .zip file, and place it in your
dépôt.
2. Ajoutez les dépendances pour le SDK Google Growth au fichier Gradle au niveau de l'application de votre module (généralement app/build.gradle
) :
dependencies {
implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
}
Pour fournir les dépendances du client, incluez les bibliothèques suivantes :
com.google.android.gms:play-services-base:18.0.1 com.google.android.gms:play-services-basement:18.0.0 com.google.android.gms:play-services-tasks:18.0.1
Initialisation de l'API
Pour initialiser un client, utilisez la classe UpgradeParty :
import com.google.android.gms.growth.UpgradeParty; UpgradeParty.getClient(activity);
Le paramètre d'activité doit correspondre à l'objet Activity à l'origine de l'appel.
Fonctions de l'API
Le UpgradePartyClient généré expose les fonctionnalités suivantes.
isEligibleForUpgradeInvite
import com.google.android.gms.growth.UpgradeInviteEligibilityParams;
Task<Boolean> isEligibleForUpgradeInvite(UpgradeInviteEligibilityParams params);
/** Contains parameters for the eligibility query. */
class UpgradeInviteEligibilityParams {
/** Integer indicating the pending OS version (in this example, the Android version to be installed is 14). This is used to determine which Upgrade Invite flow will be triggered. */
int pendingAndroidOsVersionNumber;
}
Renvoie une tâche qui vérifie de manière asynchrone si l'utilisateur est éligible à une invitation à passer à une version supérieure. La valeur booléenne obtenue indique si l'utilisateur est éligible ou non.
invokeUpgradeInvite
Task<Void> invokeUpgradeInvite();
Invoque l'activité d'invitation à la mise à niveau. L'objet _Task_ généré indique si une erreur s'est produite lors du démarrage de l'activité.
Codes d'erreur
Les deux méthodes d'API peuvent échouer, avec une exception de type com.google.android.gms.common.api.ApiException. Dans ce cas, l'appelant doit réessayer plus tard. Voici les codes d'état courants attendus :
- INTERNAL_ERROR : pour toute erreur dans le flux de la logique sous-jacente
- EXPIRATION : si la requête n'a pas pu être traitée dans les délais
- API_NOT_CONNECTED : lorsque l'API n'est pas disponible (c'est-à-dire que le module UpgradeParty n'est pas encore prêt)
- NETWORK_ERROR : la requête n'a pas pu être traitée en raison d'erreurs réseau
- DEVELOPER_ERROR : le package appelant n'est pas autorisé à accéder à l'API UpgradeParty
Exemple d'utilisation du SDK
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import com.google.android.gms.growth.UpgradeParty;
import com.google.android.gms.growth.UpgradePartyClient;
public class SampleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final UpgradePartyClient client = UpgradeParty.getClient(this);
// Hide the invocation button initially
View startUpgradeInviteButton = findViewById(R.id.__some_button__);
startUpgradeInviteButton.setVisibility(View.GONE);
// Register an onClick handler to invoke the Upgrade Party Activity
startUpgradeInviteButton
.setOnClickListener(
view -> {
client
.invokeUpgradeInvite()
.addOnCompleteListener(
task -> {
if (!task.isSuccessful()) {
// Do something with error, see task.getException()
}
});
});
}
// Check if eligible for an Upgrade Party
client
.isEligibleForUpgradeInvite()
.addOnCompleteListener(
task -> {
if (!task.isSuccessful()) {
// Do something with error, see task.getException()
} else {
// Show/Hide invocation button, based on the result
int visibility =
task.getResult() ? View.VISIBLE : View.GONE;
startUpgradeInviteButton.setVisibility(visibility);
}
});
}