Mode démo de vente au détail

Android 7.1.1 a introduit la prise en charge au niveau du système du mode démo de vente au détail afin que les clients puissent examiner les appareils en action dans les magasins de détail. Les appareils sont configurés pour une démonstration commerciale à l'aide d'une application de propriétaire d'appareil afin de garantir que l'utilisation de l'appareil est limitée à certaines applications en mode démo uniquement. Les utilisateurs finaux ne doivent pas être en mesure d'ajouter un compte personnel sur un appareil de démonstration au détail. Android 8.1 révise cette prise en charge pour créer des utilisateurs de démonstration via l'API DevicePolicyManager createAndManageUser . Cela permet une bien plus grande personnalisation OEM par rapport au mode de vente au détail standard en termes de gestion des utilisateurs et de gestion de la politique de l'appareil sur l'appareil de démonstration.

Alors que les API DevicePolicyManager peuvent être utilisées sur les versions antérieures à Android 8.1, les utilisateurs de type démo ( DevicePolicyManager.MAKE_USER_DEMO ) ne peuvent pas être créés avec l'API createAndManageUser dans les versions 8.0 et antérieures.

Implémentation dans Android 8.1 et versions ultérieures

Cette section met en évidence les améliorations de la plate-forme et décrit l'application de démonstration commerciale dans Android 8.1 et versions ultérieures.

Changements de plate-forme

Définir DEVICE_DEMO_MODE

Les appareils implémentant un mode démo de vente au détail basé sur le propriétaire de l'appareil doivent définir Settings.Global.DEVICE_DEMO_MODE sur 1 avant le provisionnement pour indiquer que l'appareil est provisionné pour le mode démo de vente au détail. SystemServer utilise cet indicateur pour gérer les aspects du mode de vente au détail, tels que le profil d'alimentation et SystemUI.

Activer RetailDemoModeService

Dans les appareils implémentant un mode de démonstration de vente au détail, l'assistant de configuration définit un paramètre global Global.DEVICE_DEMO_MODE sur true pour indiquer que l'appareil est passé en mode de vente au détail. En voyant ce paramètre, RetailDemoModeService crée un utilisateur de démonstration et bascule vers celui-ci lorsque l'utilisateur 0 est démarré, active le lanceur personnalisé spécifié dans une ressource de superposition et désactive SUW. System Server et SystemUI utilisent également cet indicateur pour gérer les aspects du mode de vente au détail.

Définir un lanceur ou un lecteur vidéo personnalisé

Les fabricants d'appareils peuvent spécifier un lanceur personnalisé en remplaçant la ressource de structure config_demoModeLauncherComponent spécifiée dans le fichier config.xml comme suit.

<!-- Component that is the default launcher when Retail Mode is enabled. -->
<string name="config_demoModeLauncherComponent">com.android.retaildemo/.DemoPlayer</string>

L'application de démonstration de vente au détail DemoPlayer située dans /packages/apps/RetailDemo est le lanceur personnalisé par défaut dans le projet Android Open Source (AOSP). L'application recherche une vidéo dans une partition de périphérique telle que /data/preloads/demo/retail_demo.mp4 et la lit en boucle. Lorsque l'utilisateur touche l'écran, le lanceur personnalisé désactive son composant d'activité, ce qui provoque le démarrage du lanceur système par défaut.

Le lanceur personnalisé doit avoir son composant personnalisé marqué comme désactivé par défaut afin qu'il n'apparaisse pas dans les scénarios non démo. Dans le scénario de démonstration, System Server active le config_demoModeLauncherComponent spécifié lors du démarrage d'une nouvelle session de démonstration.

L'assistant de configuration recherche également la vidéo mentionnée précédemment pour fournir une capacité d'entrer en mode de vente au détail. SUW peut être modifié pour rechercher un autre signe spécifique à l'OEM indiquant que le mode de vente au détail est pris en charge si la vidéo ne fait pas partie de la démo. S'il existe des partitions système A/B, la partition système B doit contenir la vidéo de démonstration dans /preloads/demo. Ceci est copié dans /data/preloads/demo au premier démarrage.

Personnalisez les applications préchargées pour le mode démo de vente au détail

Les applications préchargées peuvent personnaliser leur expérience pour le mode démo de vente au détail en appelant l'API UserManager.isDemoUser() pour voir si l'application est lancée dans un environnement de démonstration.

Certaines restrictions sont définies dans l'utilisateur de démonstration, similaires aux stratégies de profil ou d'appareil géré qui empêchent les applications et les utilisateurs d'effectuer certaines opérations. L'une de ces restrictions est DISALLOW_MODIFY_ACCOUNTS . Avec cette restriction, le gestionnaire de comptes et les paramètres n'autorisent pas l'ajout de comptes. Certaines applications Google réagissent à cette restriction et affichent un message d'erreur, et d'autres ne demandent pas de compte (comme YouTube et Photos). Nous recommandons aux applications OEM de vérifier également si DISALLOW_MODIFY_ACCOUNTS est défini et de gérer le scénario en conséquence.

Mises à jour système

Par défaut, lorsque le mode de vente au détail est activé, la politique de l'appareil est définie sur la mise à jour OTA (over-the-air) automatiquement. Les appareils vendus au détail téléchargeront, redémarreront et installeront la mise à jour (en respectant les seuils de batterie) sans intervention de l'utilisateur.

Application de démonstration de vente au détail

La mise en œuvre du mode de démonstration de vente au détail basée sur le propriétaire de l'appareil nécessite qu'une application Device Policy Controller soit définie en tant que propriétaire de l'appareil. L'AOSP contient une implémentation d'application RetailDemo de référence dans /packages/apps/RetailDemo .

Les applications du propriétaire de l'appareil n'ont pas besoin de privilèges élevés ni de préinstallation sur l'image système et peuvent être téléchargées pendant le processus de configuration ou de provisionnement. Ils sont principalement implémentés comme des applications traditionnelles, avec les différences suivantes :

Les API de la classe DevicePolicyManager permettent au propriétaire de l'appareil (DO) et au propriétaire du profil (PO) d'appliquer diverses politiques d'appareil. Certaines des fonctions DevicePolicyManager applicables au mode de démonstration de vente au détail sont répertoriées comme suit.

  • Créer et gérer des utilisateurs.

  • Redémarrez l'appareil.

  • Définissez les packages autorisés par LockTask.

  • Installez les packages via PackageInstaller .

  • Bloquez la désinstallation des packages.

  • Activez les mises à jour automatiques du système. Les appareils téléchargeront et appliqueront automatiquement les mises à jour OTA.

  • Désactivez le protège-clavier.

  • Empêcher la définition de mots de passe ou d'empreintes digitales.

  • Définissez un ensemble autorisé de paramètres Settings.Global , Settings.Secure et Settings.System .

  • Définissez la stratégie d'autorisation sur PERMISSION_POLICY_AUTO_GRANT , qui accorde automatiquement toutes les autorisations d'exécution. Les autorisations peuvent également être accordées de manière plus restreinte : une seule autorisation pour une seule application. Cela ne s'applique pas aux autorisations App-Ops, que les utilisateurs doivent toujours accorder par utilisateur et par application.

  • Définissez les restrictions utilisateur relatives au mode de vente au détail comme défini dans UserManager comme suit.

    • DISALLOW_MODIFY_ACCOUNTS
    • DISALLOW_USB_FILE_TRANSFER
    • DISALLOW_DEBUGGING_FEATURES
    • DISALLOW_CONFIG_WIFI
    • DISALLOW_CONFIG_BLUETOOTH
    • DISALLOW_INSTALL_UNKNOWN_SOURCES
    • DISALLOW_CONFIG_MOBILE_NETWORKS

Mettre à jour la vidéo de démonstration à l'aide du Web

L'application RetailDemo dans /packages/apps/RetailDemo a la capacité de mettre à jour la vidéo de démonstration s'il existe une connectivité réseau. L'URL à partir de laquelle télécharger la vidéo peut être configurée en remplaçant la valeur de chaîne suivante dans l'application RetailDemo.

<!-- URL where the retail demo video can be downloaded from. -->
<string name="retail_demo_video_download_url"></string>

Si différentes vidéos doivent être utilisées dans différentes régions, différentes URL de téléchargement peuvent être configurées en utilisant des ressources de chaîne spécifiques aux paramètres régionaux dans res/values-*/strings.xml . Par exemple, si différentes vidéos doivent être utilisées aux États-Unis et en Grande-Bretagne, les URL de téléchargement correspondantes peuvent être placées dans res/values-en-rUS/strings.xml et res/values-en-rGB/strings.xml , respectivement, illustré comme suit.

  • Dans res/values-en-rUS/strings.xml :

    <string name="retail_demo_video_download_url">download URL for US video goes here</string>
    
  • Dans res/values-en-rGB/strings.xml :

    <string name="retail_demo_video_download_url">download URL for UK video goes here</string>
    

Cette vidéo est téléchargée au plus une fois pour chaque redémarrage de l'appareil. Lorsque la vidéo sur l'appareil est en cours de lecture, l'application RetailDemo vérifie en arrière-plan si l'URL de téléchargement est fournie et si la vidéo à l'URL est plus récente que celle en cours de lecture.

Si tel est le cas, l'application RetailDemo se télécharge et commence à lire la vidéo. Une fois la vidéo téléchargée, elle est utilisée pour jouer dans toutes les sessions de démonstration à venir. Aucune des vérifications ne se reproduira avant le prochain redémarrage.

Consignes pour la vidéo de démonstration

Les vidéos de démonstration doivent être en mode portrait ou, s'il s'agit d'une tablette, dans l'orientation naturelle de l'appareil, et peuvent durer plus de cinq secondes. Le contenu ne doit pas entraîner de burn-in, car il sera lu en permanence lorsqu'il sera affiché.

Consultez les définitions des utilisateurs, des profils et des comptes des développeurs Android , la documentation de l'API Device Policy Manager et l'exemple d'application Device Owner pour plus d'informations.

Validation

CTS ne couvre pas le mode de démonstration au détail car il s'agit d'une fonctionnalité facultative. Les tests doivent être effectués manuellement ou avec des tests unitaires pour l'application de démonstration.

Séance de démonstration

Configuration de la session de démonstration

Les appareils de démonstration de vente au détail peuvent démarrer en mode démo de vente au détail s'ils sont configurés pour le mode démo en usine. Alternativement, les employés du commerce de détail peuvent activer le mode de vente au détail directement à partir de l'assistant de configuration.

Retail demo mode

Figure 2. Mode de démonstration au détail

Afficher la session de démonstration

Lorsque l'appareil passe en mode de vente au détail, il passe à un nouvel utilisateur de démonstration et démarre automatiquement le lanceur personnalisé spécifié dans la ressource de superposition, comme décrit dans Implémentation . Par défaut, ce lanceur personnalisé lit la vidéo de démonstration en boucle jusqu'à ce que l'utilisateur touche l'écran pour commencer une session utilisateur de démonstration. À ce moment-là, le lanceur personnalisé démarre le lanceur du système, puis se ferme. Les OEM peuvent modifier le lanceur personnalisé pour lancer en plus un autre service ou une autre activité à la sortie.

Afin de maintenir l'intégrité du mode de vente au détail, le verrouillage du clavier est désactivé et certaines actions des paramètres rapides susceptibles d'affecter négativement le mode de vente au détail sont également interdites, notamment les suivantes.

  • Bascule en mode avion.
  • Supprimer ou modifier des points d'accès Wi-Fi (Paramètres).
  • Changer d'opérateur (Paramètres).
  • Configuration du point d'accès (Paramètres).
  • Changement d'utilisateur.

De plus, l'accès est également bloqué à certains paramètres globaux qui peuvent affecter le mode de vente au détail en désactivant les éléments suivants :

  • Paramètres Wifi.
  • Options de configuration du réseau cellulaire, en particulier les hotspots.
  • Paramétrage Bluetooth.
  • Sauvegarde et réinitialisation, date et heure et réseaux mobiles (ils ne s'affichent pas du tout).

Si l'utilisateur est inactif pendant un certain temps (90 secondes par défaut), le mode de vente au détail affiche une boîte de dialogue système pour inviter l'utilisateur à quitter la session ou à continuer. Si l'utilisateur choisit de quitter ou s'il n'y a pas de réponse pendant cinq secondes, le mode de vente au détail supprime l'utilisateur de démonstration actuel, passe à un nouvel utilisateur de démonstration et parcourt à nouveau la vidéo d'origine. Si l'écran est éteint à l'aide du bouton d'alimentation, il se rallume automatiquement après quelques secondes.

Après avoir quitté une session de démonstration, les appareils se mettent en sourdine et réinitialisent certains paramètres généraux, notamment :

  • Luminosité
  • Rotation automatique
  • Lampe de poche
  • Langue
  • Accessibilité

Quitter le mode démo de vente au détail

Pour quitter le mode de vente au détail, les employés du commerce de détail doivent s'assurer que l'appareil de démonstration n'est pas inscrit dans la gestion des appareils et réinitialiser l'appareil en usine à partir du chargeur de démarrage.