Rôles Android

Un rôle est un nom unique dans le système associé à certaines autorisations et certains droits. Les applications peuvent demander à assumer certains rôles via l'API Android, en particulier en appelant des méthodes de la classe RoleManager.

Consultez la liste suivante pour connaître les rôles disponibles et les exigences correspondantes :

Rôle Conditions requises
ASSISTANT Au moins l'un des éléments suivants :
  • L'application dispose d'une activité qui effectue des actions d'assistance, compte tenu des informations sur le contexte de l'utilisateur lorsqu'il a demandé l'assistance (par exemple, le nom du package de l'application actuellement au premier plan et ses informations contextuelles).
  • L'application dispose d'un service d'interaction vocale toujours activé, contrôlé par l'autorisation android.permission.BIND_VOICE_INTERACTION, qui peut effectuer la reconnaissance vocale et héberger des sessions d'interaction vocale actives. De plus, l'application dispose d'un indicateur explicite indiquant que le service est capable de gérer l'action d'assistance.
BROWSER Tous les éléments suivants :
  • L'application comporte une activité que les applications peuvent appeler via des requêtes d'intent implicites, qui affiche une page Web correspondant à une adresse http://.
  • L'application doit gérer la navigation entre les liens. Autrement dit, si l'utilisateur consulte une page Web et clique sur une adresse http:// dans le texte, l'application doit pouvoir afficher le contenu correspondant au lien sélectionné sans intervention supplémentaire de l'utilisateur.
  • L'application doit pouvoir fournir les informations de géolocalisation actuelles de l'appareil aux pages Web lorsqu'elles sont demandées et que l'utilisateur approuve la demande.
DIALER Tous les éléments suivants :
  • L'application comporte une activité que les applications peuvent appeler via des requêtes d'intent implicites, qui fournit l'interface utilisateur en cours d'appel lorsque l'appareil est en cours d'appel.
  • L'application peut gérer les intents d'appel entrant, afficher les informations liées à l'appel (par exemple, le numéro de téléphone de l'appelant) et permettre à l'utilisateur de répondre à l'appel ou de le refuser.
  • L'application permet à l'utilisateur de passer des appels et de consulter l'historique des appels sur son appareil.
SMS Tous les éléments suivants :
  • L'application répond à toutes les exigences applicables aux applications de SMS.
  • L'application comporte une activité que les applications peuvent appeler via des requêtes d'intent implicites, qui peuvent envoyer un message à un numéro de téléphone.
  • L'application dispose d'un service contrôlé par l'autorisation android.permission.SEND_RESPOND_VIA_MESSAGE et pouvant être appelé par des intents implicites, qui peuvent envoyer des messages reçus de l'application Téléphone lorsque l'utilisateur choisit de répondre par message lors d'un appel entrant. L'application peut envoyer des messages via son propre système de messagerie.
  • L'application dispose de deux broadcast receivers, l'un contrôlé par l'autorisation android.permission.BROADCAST_SMS et l'autre par l'autorisation android.permission.BROADCAST_WAP_PUSH, qui peuvent écouter respectivement les SMS et les MMS envoyés à l'appareil. L'application est ensuite chargée d'écrire les messages dans le fournisseur de SMS et d'en informer les utilisateurs.
EMERGENCY Tous les éléments suivants :
  • L'application est une application système.
  • L'application propose une activité qui présente les informations d'urgence de l'utilisateur. Tout le monde peut accéder à cet écran via le bouton "Urgence" de l'activité "Numéroteur d'urgence".
HOME L'application comporte une activité qui peut lancer l'écran d'accueil lorsque l'utilisateur appuie sur le bouton d'accueil. L'écran d'accueil doit afficher les icônes d'application et les widgets, et permettre la navigation à l'aide de boutons ou de gestes (par exemple, balayer l'écran vers le haut pour afficher toutes les applications).
CALL_REDIRECTION L'application dispose d'un service contrôlé par l'autorisation android.permission.BIND_CALL_REDIRECTION_SERVICE, auquel le framework de télécommunications peut se lier. Le service reçoit le numéro de téléphone sortant du framework de télécommunications et effectue l'une des actions suivantes :
  • Autoriser l'appel à être passé tel quel.
  • Modifiez le numéro sortant pour qu'il soit acheminé via un numéro proxy.
  • Annuler l'appel.
CALL_SCREENING L'application dispose d'un service contrôlé par l'autorisation android.permission.BIND_SCREENING_SERVICE, qui remplit deux fonctions :
  • Blocage et filtrage des appels : le service peut choisir les appels à envoyer à l'application de numérotation du téléphone (et potentiellement faire sonner, en fonction du mode NPD ou du volume) et ceux à envoyer silencieusement à la messagerie vocale.
  • Identification des appels : le service peut identifier et afficher des informations sur un appel via une interface utilisateur.
SUPERVISION Tous les éléments suivants :
  • L'application est une application système ou un service préinstallé.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application a pour seul but de permettre au parent ou au représentant légal d'un utilisateur de gérer l'appareil.
  • L'application doit fournir un composant d'interface utilisateur sur l'appareil que l'utilisateur autorisé peut utiliser pour désactiver le rôle de supervision.
SYSTEM_AUTOMOTIVE_CLUSTER Tous les éléments suivants :
  • L'application est une application système sur Automotive.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application permet d'afficher un tableau de bord automobile (généralement à côté du volant) pour que les utilisateurs puissent répondre aux appels téléphoniques, et accéder aux listes de contacts et aux journaux d'appels.
COMPANION_DEVICE_WATCH L'application peut demander à être associée à une montre et à la gérer (à l'aide de l'API fournie par la classe CompanionDeviceManager). Lorsque la montre et l'application sont connectées via l'interface utilisateur fournie par l'application, les utilisateurs peuvent gérer leur montre depuis l'application, y compris synchroniser les contacts et l'agenda, et gérer les notifications et les appels téléphoniques.
SYSTEM_AUTOMOTIVE_PROJECTION Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application permet de projeter l'écran du téléphone sur l'écran du véhicule. Elle permet aux conducteurs d'accéder aux applications sur les téléphones Android et de les contrôler (musique, navigation, appels téléphoniques et recherche, par exemple) à l'aide des mécanismes de saisie du véhicule, y compris les commandes tactiles, les commandes au volant et les commandes vocales.
SYSTEM_SHELL Tous les éléments suivants :
  • L'application est une application système à laquelle est attribué l'UID Process.SHELL_UID.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application fournit une interface qui fonctionne au niveau de la ligne de commande, ce qui permet aux utilisateurs d'interagir avec l'OS Android. Par exemple, afficher le contenu d'un dossier ou lancer des applications. Les commandes shell peuvent être exécutées de manière programmatique par les applications (à condition que les autorisations nécessaires aient été accordées) ou à partir de l'outil ADB.
SYSTEM_CONTACTS Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application fournit une UI permettant aux utilisateurs de gérer leurs contacts (par exemple, afficher, partager, ajouter, supprimer ou rechercher un contact). L'application met à jour le fournisseur de contacts lorsque l'utilisateur met à jour ses contacts depuis l'application. Les utilisateurs peuvent également appeler leurs contacts, leur envoyer un e-mail ou leur envoyer un message depuis l'application.
SYSTEM_SPEECH_RECOGNIZER Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application fournit un service capable d'effectuer la reconnaissance vocale.
  • Lorsque l'application reçoit des flux de micro en direct d'une autre application pour la reconnaissance vocale, elle attribue correctement l'utilisation du micro à l'application appelante et met à jour les statistiques d'utilisation de l'application en conséquence.
SYSTEM_WIFI_COEX_MANAGER Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application dispose d'un service qui définit de manière dynamique une liste de canaux Wi-Fi que l'appareil doit éviter d'utiliser en raison d'interférences cellulaires.
SYSTEM_WELLBEING Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application doit permettre aux utilisateurs de réduire les distractions et leur fournir des statistiques sur l'utilisation de leur appareil (par exemple, leur temps d'écran par semaine).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application doit afficher des notifications prioritaires aux utilisateurs sur les téléviseurs. L'application doit également afficher les notifications actives actuelles lorsque l'intent android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL est envoyé (depuis SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application doit pouvoir détecter les périphériques à proximité. Elle doit disposer d'une UI permettant à l'utilisateur de confirmer qu'un périphérique donné doit être associé à une application et géré par celle-ci. Lorsque l'utilisateur confirme, l'application de gestion accorde à l'application associée l'autorisation d'accéder au périphérique (par exemple, son nom, son adresse, sa classe et son état d'association) et peut démarrer le processus d'association.
SYSTEM_DOCUMENT_MANAGER Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application propose une activité qui permet aux utilisateurs d'accéder aux documents existants et d'en créer d'autres sur l'appareil.
  • L'application doit répondre à toutes les exigences décrites dans la section 2.2.3 du CDD Android. Logicielsous l'en-tête [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER Tous les éléments suivants :
  • L'application est une application système.
  • L'application dispose d'un service contrôlé par android.permission.ACTIVITY_RECOGNITION, qui peut effectuer une reconnaissance de l'activité (par exemple, course à pied ou vélo).
SYSTEM_UI Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application dispose d'une interface permettant aux utilisateurs d'interagir avec leur téléphone. Par exemple, l'écran principal du téléphone, la navigation, les applications récentes, les réglages rapides, la barre de notification, l'écran de verrouillage et le contrôle du volume.
SYSTEM_TELEVISION_REMOTE_SERVICE Tous les éléments suivants :
  • L'application est une application système sur Android TV.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application dispose d'un service qui peut communiquer avec l'appareil HID de la télécommande TV (par exemple, via BLE), injecter des événements (par exemple, des clics sur des boutons) et envoyer d'autres données (par exemple, un flux audio provenant d'un micro intégré à la télécommande) à la plate-forme.
SYSTEM_UI_INTELLIGENCE Tous les éléments suivants :
  • Être un service préinstallé qui fournit, via des API de framework (API publiques ou système), un processeur intelligent sur l'appareil pour les fonctionnalités de l'UI du système (par exemple, prédire et afficher les prochaines applications pour les utilisateurs).
  • Le service doit répondre à toutes les exigences décrites dans la section 9.8.6 Content Capture du CDD Android.
  • Le service ne peut pas disposer de l'autorisation android.permission.INTERNET. Il doit plutôt accéder à Internet via des API bien définies dans un projet Open Source.
  • Le service ne peut pas être associé à des applications, à l'exception des applications système suivantes : Bluetooth, Contacts, Media, Telephony, SystemUI et les composants fournissant des API Internet. Chaque liaison autorisée doit être configurée explicitement via la configuration <allow-association> dans la configuration du système.
  • Le service ne peut pas partager de données avec des applications, sauf en cas d'action directe de l'utilisateur (par exemple, si l'utilisateur appuie explicitement sur un bouton chaque fois que les données sont partagées).
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE Tous les éléments suivants :
  • Identique aux conditions de SYSTEM_UI_INTELLIGENCE, sauf que le service préinstallé fournit un processeur intelligent sur l'appareil pour l'audio ambiant (par exemple, pour reconnaître les chansons diffusées à proximité de l'appareil).
SYSTEM_AUDIO_INTELLIGENCE Tous les éléments suivants :
  • Identique aux conditions de SYSTEM_UI_INTELLIGENCE, sauf que le service préinstallé fournit un processeur intelligent sur l'appareil pour l'audio (par exemple, pour sous-titrer des vidéos, des podcasts, des appels téléphoniques, des appels vidéo et des messages audio).
SYSTEM_NOTIFICATION_INTELLIGENCE Tous les éléments suivants :
  • Identique aux conditions de SYSTEM_UI_INTELLIGENCE, sauf que le service préinstallé fournit un processeur intelligent sur l'appareil pour les notifications (par exemple, pour suggérer des réponses et des actions pour les notifications de messages).
SYSTEM_TEXT_INTELLIGENCE Tous les éléments suivants :
  • Identique aux conditions de SYSTEM_UI_INTELLIGENCE, sauf que le service préinstallé fournit un processeur intelligent sur l'appareil pour le texte (par exemple, pour la traduction instantanée ou la saisie automatique).
SYSTEM_VISUAL_INTELLIGENCE Tous les éléments suivants :
  • Identique aux conditions pour SYSTEM_UI_INTELLIGENCE, sauf que le service préinstallé fournit un processeur intelligent sur l'appareil pour les fonctionnalités visuelles qui impliquent l'analyse des données de l'appareil photo. Par exemple, maintenir l'écran du téléphone allumé lorsque l'utilisateur le regarde ou déterminer l'orientation idéale de l'écran en fonction de l'orientation du visage de l'utilisateur à partir de la caméra avant de l'appareil.
COMPANION_DEVICE_APP_STREAMING Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • Cas d'utilisation autorisés :
    • Streaming, diffusion ou mise en miroir d'applications permettant le streaming, la diffusion ou la mise en miroir depuis un appareil Android (téléphone mobile ou tablette, par exemple) vers un ordinateur de bureau ou portable.
  • Lors de l'établissement de la connexion initiale entre l'appareil A et l'appareil B :
    • L'association DOIT être autorisée par un code à usage unique affiché sur l'appareil source (A) et saisi sur l'appareil connecté (B). Si les deux appareils ont au moins un compte correspondant dans leur AccountManager Android, l'utilisateur PEUT confirmer l'association en saisissant le mot de passe du compte sur l'appareil connecté (B).
    • Les deux appareils doivent être à proximité 1 l'un de l'autre pendant l'association.
  • Les deux appareils doivent être à proximité 1 l'un de l'autre pendant le streaming.
  • L'application peut créer et gérer des canaux de communication avec les appareils connectés afin qu'ils puissent échanger des données. L'application et les appareils connectés DOIVENT s'authentifier mutuellement (par exemple, en prouvant qu'ils connaissent les clés partagées) pour établir ces canaux de communication. Les canaux de communication DOIVENT être protégés par un chiffrement de bout en bout.
  • L'application peut envoyer des notifications de l'appareil source (A) à l'appareil connecté (B) pour permettre à l'utilisateur d'effectuer des actions sur les notifications sur l'appareil connecté (B).
  • Pouvoir diffuser les métadonnées nécessaires au streaming d'applications sur l'appareil connecté (B), telles que la liste des applications disponibles sur l'appareil source (A).
  • Pouvoir diffuser des applications de l'appareil source (A) vers l'appareil connecté (B) après que l'utilisateur a indiqué sa préférence en ce sens avec un consentement explicite (sur l'appareil source (A) ou sur l'appareil connecté (B)).
  • Pouvoir rejouer (injecter) les événements qui se produisent sur une application diffusée en streaming sur l'appareil connecté (B) sur l'appareil source (A). Par exemple, rejouer un événement tactile sur l'appareil connecté (B) aux mêmes coordonnées que sur l'appareil source (A), ou rejouer un événement d'entrée qui s'est produit sur l'appareil connecté (B) avec la même sémantique d'entrée que sur l'appareil source (A).
  • L'application peut remplacer le flux du micro de l'appareil source par celui d'un appareil connecté lorsqu'une application de streaming utilise le micro.
  • L'application capture l'audio de l'appareil source (A) et le diffuse sur l'appareil connecté (B).
  • Il est RECOMMANDÉ de bloquer l'accès aux applications de paramètres et aux plates-formes de téléchargement d'applications depuis l'appareil connecté (B).
  • À partir d'Android 16, la capture d'écran et la lecture d'écran de contenus sensibles, tels que les fenêtres et surfaces sécurisées, DOIVENT être empêchées sur l'appareil connecté (B).
  • DOIT vérifier l'intégrité de la version de l'OS de l'appareil connecté (par exemple, en utilisant l'attestation de l'appareil comme dans VerifiedBootState).
  • Ne diffusez que les applications de streaming pour lesquelles il n'existe qu'un seul compte correspondant dans le registre des comptes sur l'appareil (par exemple, la classe AccountManager sur Android) sur les deux appareils. Si ce n'est pas le cas, le streaming DOIT être autorisé à l'aide d'un code à usage unique affiché sur l'appareil source (A) et saisi sur l'appareil connecté (B). Notez que pour les appareils compatibles avec le mode multi-utilisateur (et non multicompte) avec la même isolation fiable des données que dans Android multi-utilisateur, un utilisateur compte comme un appareil.
  • DOIT arrêter le streaming et se déconnecter de l'appareil connecté (B) immédiatement si l'authentification du compte sur l'appareil connecté (B) expire ou est révoquée.
  • DOIT arrêter le streaming et se déconnecter de l'appareil connecté (B) après l'expiration du délai d'inactivité de l'appareil connecté (B) sur lequel le contenu de l'écran est visible. PEUT laisser l'écran de l'appareil connecté allumé dans des cas tels que WakeLock, qui maintiennent l'écran de l'appareil Android allumé. Un délai d'inactivité DOIT être présent. Si l'appareil connecté (B) ne dispose pas d'un délai d'inactivité, un délai d'inactivité de cinq minutes maximum DOIT être utilisé.
  • Si l'appareil source (A) utilise le facteur de connaissance de l'écran de verrouillage (LSKF), lorsque l'écran est verrouillé, l'application NE DOIT PAS diffuser d'applications sur un appareil connecté (B), sauf si l'appareil connecté (B) dispose d'un écran de verrouillage et est déverrouillé.
  • Si l'appareil source (A) est géré par un administrateur, l'application DOIT respecter les règles définies par l'administrateur concernant l'activation ou la désactivation du streaming vers les appareils à proximité (par exemple, en utilisant les paramètres DevicePolicyManager dans Android).
  • DOIT s'assurer que les écrans distants et toutes les sources d'événements d'entrée distants appartiennent au même appareil logique (par exemple, un écran distant et un clavier connecté) du point de vue de l'utilisateur, et que les événements sont acheminés en conséquence.
  • L'utilisateur DOIT pouvoir mettre fin au streaming depuis l'appareil source (A), par exemple en utilisant un bouton dans une notification persistante. Ce comportement est contrôlé par l'écran de verrouillage, si un verrouillage de l'écran est défini sur l'appareil source (A). DOIT afficher cette affordance persistante sur l'appareil source (A), qui est toujours visible et au-dessus de la ligne de flottaison.
  • DOIT afficher une affordance sur l'appareil source (A) lorsque le streaming est en cours sur un autre appareil, comme une icône dans la barre d'état ou une notification persistante.
DEVICE_POLICY_MANAGEMENT Tous les éléments suivants :
  • Seuls les OEM peuvent accorder ce rôle à l'application. Les applications ne peuvent pas demander ce rôle, car il est censé être accordé d'office au nom de package défini par l'OEM lors de l'expédition de l'appareil.
  • L'application doit pouvoir provisionner un profil géré (propriétaire du profil) ou un appareil géré (propriétaire de l'appareil), y compris télécharger et installer le client de règles relatives aux appareils approprié pour être le propriétaire de l'appareil/du profil, si nécessaire.
  • L'application peut éventuellement mettre à jour de manière dynamique les ressources telles que les chaînes et les drawables utilisés pour la gestion des règles relatives aux appareils.
  • L'application peut être une application système préinstallée, ou être téléchargée et installée avant le provisionnement.
  • Pour les cas de provisionnement du propriétaire du profil, lorsque l'application du titulaire du rôle est installée sur un utilisateur Android donné, elle doit être installée sur tous les profils applicables pour cet utilisateur.
SYSTEM_APP_PROTECTION_SERVICE Tous les éléments suivants :
  • L'application est une application système.
  • L'application a pour seul objectif de détecter les applications potentiellement dangereuses (applications susceptibles de mettre en danger les utilisateurs, leurs données ou leurs appareils, telles que les chevaux de Troie, les applications d'hameçonnage et les logiciels espions) ou les logiciels mobiles indésirables.
  • L'application doit répondre à toutes les exigences décrites dans la section CDD Android 9.8.6. Données au niveau de l'OS et données ambiantes.
  • L'application ne doit pas déclarer l'autorisation normale android.permission.INTERNET. Il doit plutôt accéder à Internet via des API bien définies dans un projet Open Source.
  • L'application ne doit pas être liée à des applications, à l'exception des applications système suivantes : Permission Controller et les composants fournissant des API de téléphonie et Internet. Chaque liaison autorisée doit être configurée explicitement via la configuration <allow-association> dans la configuration du système.
  • L'application ne doit pas partager de données avec d'autres applications, sauf si l'utilisateur effectue une action directe (par exemple, s'il appuie explicitement sur un bouton chaque fois que les données sont partagées).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application doit transférer les données d'agenda du téléphone iOS ou Android de l'utilisateur vers l'appareil Android Auto. L'appareil Android Auto doit stocker ces données d'agenda dans le fournisseur d'agenda.
  • L'application doit fournir un composant d'interface utilisateur sur le téléphone que l'utilisateur peut utiliser pour activer la synchronisation de l'agenda et sélectionner les agendas à synchroniser. L'application doit fournir un composant d'interface utilisateur sur le téléphone que l'utilisateur peut utiliser pour désactiver la synchronisation de l'agenda.
  • L'application doit fonctionner sans connexion Internet. Par exemple, en utilisant des connexions filaires ou sans fil directes.
AUTOMOTIVE_NAVIGATION Tous les éléments suivants :
  • L'application comporte une activité que les applications peuvent appeler via des requêtes d'intent implicites, qui affiche la position actuelle de l'utilisateur et ses environs.
  • L'application comporte une activité que les applications peuvent appeler via des requêtes d'intent implicites, ce qui permet à l'utilisateur d'accéder à une géolocalisation spécifiée.
  • L'application comporte une activité qui est lancée sur le tableau de bord lorsque l'application est sélectionnée pour la navigation. L'activité doit afficher la position actuelle de l'utilisateur et les environs, et lui permettre d'accéder à une géolocalisation spécifiée.
COMPANION_DEVICE_COMPUTER Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • Permettez aux utilisateurs de dupliquer les notifications et d'accéder aux photos et aux contenus multimédias du téléphone sur un ordinateur connecté.
SYSTEM_SETTINGS_INTELLIGENCE Au moins l'un des éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • Dispose d'un service qui fournit des fonctionnalités d'intelligence pour l'application Paramètres, telles que des suggestions et la recherche.
NOTES Tous les éléments suivants :
COMPANION_DEVICE_GLASSES L'application peut demander à être associée à des lunettes et à les gérer (à l'aide de l'API fournie par la classe CompanionDeviceManager). Lorsque les lunettes et l'application sont connectées à l'aide de l'UI fournie par CDM, les utilisateurs peuvent gérer leurs lunettes en leur accordant l'accès aux contacts et l'autorisation de gérer les notifications et les appels téléphoniques.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • Cas d'utilisation autorisés :
    • Streaming d'applications depuis un appareil Android (téléphone mobile ou tablette, par exemple) vers un véhicule.
    • Streaming d'applications depuis un appareil Android (téléphone mobile ou tablette, par exemple) vers un appareil XR.
  • Lors de l'établissement de la connexion initiale entre l'appareil A et l'appareil B :
    • L'association DOIT être autorisée par un code à usage unique affiché sur l'appareil source (A) et saisi sur l'appareil connecté (B). Si les deux appareils ont au moins un compte correspondant dans leur AccountManager Android, l'utilisateur PEUT confirmer l'association en saisissant le mot de passe du compte sur l'appareil connecté (B).
    • Les deux appareils doivent être à proximité 1 l'un de l'autre pendant l'association.
  • Les deux appareils doivent être à proximité 1 l'un de l'autre pendant le streaming.
  • L'application peut créer et gérer des canaux de communication avec les appareils connectés afin qu'ils puissent échanger des données. L'application et les appareils connectés DOIVENT s'authentifier mutuellement (par exemple, en prouvant qu'ils connaissent les clés partagées) pour établir ces canaux de communication. Les canaux de communication DOIVENT être protégés par un chiffrement de bout en bout.
  • L'application peut envoyer des notifications de l'appareil source (A) à l'appareil connecté (B) pour permettre à l'utilisateur d'effectuer des actions sur les notifications sur l'appareil connecté (B).
  • Pouvoir diffuser les métadonnées nécessaires au streaming d'applications sur l'appareil connecté (B), telles que la liste des applications disponibles sur l'appareil source (A).
  • Pouvoir diffuser des applications de l'appareil source (A) vers l'appareil connecté (B) après que l'utilisateur a indiqué sa préférence en ce sens avec un consentement explicite (sur l'appareil source (A) ou sur l'appareil connecté (B)).
  • Pouvoir rejouer (injecter) les événements qui se produisent sur une application diffusée en streaming sur l'appareil connecté (B) sur l'appareil source (A). Par exemple, rejouer un événement tactile sur l'appareil connecté (B) aux mêmes coordonnées que sur l'appareil source (A), ou rejouer un événement d'entrée qui s'est produit sur l'appareil connecté (B) avec la même sémantique d'entrée que sur l'appareil source (A).
  • L'application peut remplacer le flux du micro de l'appareil source par celui d'un appareil connecté lorsqu'une application de streaming utilise le micro.
  • L'application capture l'audio de l'appareil source (A) et le diffuse sur l'appareil connecté (B).
  • Il est RECOMMANDÉ de bloquer l'accès aux applications de paramètres et aux plates-formes de téléchargement d'applications depuis l'appareil connecté (B).
  • À partir d'Android 16, la capture d'écran et la lecture d'écran de contenus sensibles, tels que les fenêtres et surfaces sécurisées, DOIVENT être empêchées sur l'appareil connecté (B).
  • DOIT vérifier l'intégrité de la version de l'OS de l'appareil connecté (par exemple, en utilisant l'attestation de l'appareil comme dans VerifiedBootState).
  • Ne diffusez que les applications de streaming pour lesquelles il n'existe qu'un seul compte correspondant dans le registre des comptes sur l'appareil (par exemple, la classe AccountManager sur Android) sur les deux appareils. Si ce n'est pas le cas, le streaming DOIT être autorisé à l'aide d'un code à usage unique affiché sur l'appareil source (A) et saisi sur l'appareil connecté (B). Notez que pour les appareils compatibles avec le mode multi-utilisateur (et non multicompte) avec la même isolation fiable des données que dans Android multi-utilisateur, un utilisateur compte comme un appareil.
  • DOIT arrêter le streaming et se déconnecter immédiatement de l'appareil connecté (B) si l'authentification du compte sur l'appareil connecté (B) expire ou est révoquée.
  • DOIT arrêter le streaming et se déconnecter de l'appareil connecté (B) après l'expiration du délai d'inactivité de l'appareil connecté (B) sur lequel le contenu de l'écran est visible. PEUT laisser l'écran de l'appareil connecté allumé dans des cas tels que WakeLock, qui maintiennent l'écran de l'appareil Android allumé. Un délai d'inactivité DOIT être présent. Si l'appareil connecté (B) ne dispose pas d'un délai d'inactivité, un délai d'inactivité de cinq minutes maximum DOIT être utilisé.
  • Si l'appareil source (A) utilise le facteur de connaissance de l'écran de verrouillage (LSKF), lorsque l'écran est verrouillé, l'application NE DOIT PAS diffuser d'applications sur un appareil connecté (B), sauf si l'appareil connecté (B) dispose d'un écran de verrouillage et est déverrouillé.
  • Si l'appareil source (A) est géré par un administrateur, l'application DOIT respecter les règles définies par l'administrateur concernant l'activation ou la désactivation du streaming vers les appareils à proximité (par exemple, en utilisant les paramètres DevicePolicyManager dans Android).
  • DOIVENT s'assurer que les écrans distants et toutes les sources d'événements d'entrée distants appartiennent au même appareil logique (par exemple, un écran distant et un clavier connecté) du point de vue de l'utilisateur, et que les événements sont acheminés en conséquence.
  • L'utilisateur DOIT pouvoir mettre fin au streaming depuis l'appareil source (A), par exemple en utilisant un bouton dans une notification persistante. Ce comportement est contrôlé par l'écran de verrouillage, si un verrouillage de l'écran est défini sur l'appareil source (A). DOIT afficher cette affordance persistante sur l'appareil source (A), qui est toujours visible et au-dessus de la ligne de flottaison.
  • DOIT afficher une affordance sur l'appareil source (A) lorsque le streaming est en cours sur un autre appareil, comme une icône dans la barre d'état ou une notification persistante.
WALLET Au choix :
  • L'application dispose d'un service APDU NFC qui enregistre de manière statique au moins un AID dans la catégorie PAYMENT.
  • L'application implémente une instance de QuickAccessWalletService.

1 La proximité est définie par le fait que les deux appareils se trouvent à portée Bluetooth ou Wi-Fi l'un de l'autre, ou qu'ils utilisent le même réseau local.