Mode démo de vente au détail

Android 7.1.1 a introduit la prise en charge au niveau système du mode démo 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 au détail à l'aide d'une application propriétaire de l'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 pouvoir ajouter un compte personnel sur un appareil de démonstration vendu 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 des politiques des appareils sur l'appareil de démonstration.

Bien que les API DevicePolicyManager puissent ê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 sous Android 8.1 et versions ultérieures.

Modifications de la plateforme

Définir DEVICE_DEMO_MODE

Les appareils implémentant un mode de démonstration 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 en cours de provisionnement pour le mode de démonstration 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

Sur les appareils implémentant un mode démo 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 vente au détail. En voyant ce paramètre, RetailDemoModeService crée un utilisateur de démonstration et y bascule 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 vente au détail.

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

Les fabricants de périphériques 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 commerciale DemoPlayer située dans /packages/apps/RetailDemo est le lanceur personnalisé par défaut du 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 permettre d'accéder au mode vente au détail. SUW peut être modifié pour rechercher un autre signe spécifique à l'OEM indiquant que le mode 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 politiques de périphérique ou de profil gérées 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, AccountManager et Paramètres ne permettent pas l'ajout de comptes. Certaines applications Google réagissent à cette restriction et affichent un message d'erreur, tandis que d'autres ne vous demanderont pas de créer un 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 vente au détail est activé, la stratégie relative aux appareils est définie sur une mise à jour automatique par liaison radio (OTA). 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 pour la 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 de référence de l'application RetailDemo dans /packages/apps/RetailDemo .

Les applications des propriétaires d'appareils 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 d'installation ou de provisionnement. Elles sont pour la plupart implémentées comme les 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 stratégies d'appareil. Certaines des fonctions DevicePolicyManager applicables au mode démo de vente au détail sont répertoriées comme suit.

  • Créez et gérez des utilisateurs.

  • Redémarrez l'appareil.

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

  • Installez les packages via PackageInstaller .

  • Empêcher 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êchez la définition de mots de passe ou d’empreintes digitales.

  • Définissez un ensemble de paramètres sur liste verte 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 restrictive : 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 pertinentes pour le mode de vente au détail telles que définies 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 possibilité 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 à l'aide de 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és 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 maximum une fois à 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 télécharge et commence à lire la vidéo. Une fois la vidéo téléchargée, elle est utilisée pour la lecture dans toutes les sessions de démonstration à venir. Aucune des vérifications ne se reproduira avant le prochain redémarrage.

Directives pour la vidéo de démonstration

Les vidéos de démonstration doivent être en format 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 rémanence, car il sera lu en permanence lorsqu'il sera affiché.

Pour plus d’informations, 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 .

Validation

CTS ne couvre pas le mode démo 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 vendus au détail peuvent démarrer en mode démo s'ils sont configurés pour le mode démo en usine. Les employés du commerce de détail peuvent également activer le mode vente au détail directement à partir de l'assistant de configuration.

Retail demo mode

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

Afficher la session de démonstration

Lorsque l'appareil passe en mode 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 démarrer une session utilisateur de démonstration. À ce moment-là, le lanceur personnalisé démarre le lanceur 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 vente au détail, le verrouillage des touches est désactivé et certaines actions des paramètres rapides qui pourraient nuire au mode vente au détail sont également interdites, notamment les suivantes.

  • Basculement du 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 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.
  • Configuration Bluetooth.
  • Sauvegarde et réinitialisation, date et heure et réseaux mobiles (ils n'apparaissent pas du tout).

Si l'utilisateur est inactif pendant un certain temps (90 secondes par défaut), le mode 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 vente au détail supprime l'utilisateur de démonstration actuel, passe à un nouvel utilisateur de démonstration et boucle à 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 coupent automatiquement et réinitialisent certains paramètres globaux, notamment les suivants :

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

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

Afin de quitter le mode 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 aux paramètres d'usine à partir du chargeur de démarrage.