Rôles Android

Un rôle est un nom unique dans le système associé à certaines autorisations et privilèges. Les applications peuvent demander à occuper 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 conditions requises 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, en fonction des informations sur le contexte de l'utilisateur lorsqu'il a demandé l'assistance (par exemple, le nom du package de l'application de premier plan actuelle et ses informations contextuelles).
  • L'application dispose d'un service d'interaction vocale permanent 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 dispose d'une activité que les applications peuvent appeler via des requêtes d'intent implicites, qui fournit l'interface utilisateur de l'appel lorsque l'appareil est en ligne.
  • L'application peut gérer les intents d'appel entrant, présenter à l'utilisateur 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 ou de refuser l'appel.
  • 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 concernant les applications de SMS.
  • L'application dispose d'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 diffuser 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 distribuer 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 contrôlé par l'autorisation android.permission.BROADCAST_WAP_PUSH, qui peuvent écouter les messages SMS et MMS textuels envoyés à l'appareil, respectivement. L'application se charge ensuite d'écrire les messages à destination du fournisseur de SMS et d'en informer les utilisateurs.
EMERGENCY Tous les éléments suivants :
  • L'application est une application système.
  • L'application comporte une activité qui présente les informations d'urgence de l'utilisateur. Tout le monde peut accéder à cet écran via le bouton d'urgence de l'activité de l'Appel d'urgence.
HOME L'application dispose d'une activité qui peut lancer l'écran d'accueil lorsque l'utilisateur appuie sur le bouton d'accueil. L'écran d'accueil doit afficher des icônes d'application, des widgets et prendre en charge la navigation basée sur des boutons ou des gestes (par exemple, balayer l'écran vers le haut pour afficher toutes les applications).
CALL_REDIRECTION L'application dispose d'un service restreint par l'autorisation android.permission.BIND_CALL_REDIRECTION_SERVICE, auquel le framework de télécommunications peut s'associer. Le service reçoit le numéro de téléphone sortant du framework télécom et effectue l'une des actions suivantes :
  • Autorisez le passage de l'appel tel quel.
  • Modifiez le numéro de sortie pour qu'il soit acheminé via un numéro de proxy.
  • Annulez 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 Téléphone du téléphone (et éventuellement sonner, en fonction du mode Ne pas déranger ou du volume), et ceux à envoyer de manière silencieuse à la messagerie vocale.
  • Identification des appels:le service peut identifier et afficher des informations sur un appel via une interface utilisateur.
SYSTEM_GALLERY Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent attribuer ce rôle à l'application.
  • L'application fournit une UI permettant aux utilisateurs de stocker, d'organiser et d'afficher leurs vidéos et images.
SYSTEM_AUTOMOTIVE_CLUSTER Tous les éléments suivants :
  • L'application est une application système sur Automotive.
  • Seuls les OEM peuvent attribuer ce rôle à l'application.
  • L'application permet aux utilisateurs de répondre aux appels téléphoniques et d'accéder aux listes de contacts et aux journaux d'appels via un écran de cluster automobile (généralement à côté du volant).
COMPANION_DEVICE_WATCH L'application peut envoyer des requêtes pour ê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 la synchronisation des contacts et de l'agenda, ainsi que la gestion des notifications et des appels téléphoniques.
SYSTEM_AUTOMOTIVE_PROJECTION Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent attribuer ce rôle à l'application.
  • L'application permet de projeter l'écran du téléphone sur l'écran du véhicule. Il permet aux conducteurs d'accéder aux applications sur les téléphones Android et de les contrôler, y compris la musique, la navigation, les appels téléphoniques et la recherche, à l'aide de mécanismes d'entrée dans le véhicule, y compris les commandes tactiles, le 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 afin que les utilisateurs puissent 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 automatisée par les applications (si les autorisations nécessaires ont é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 attribuer ce rôle à l'application.
  • L'application fournit aux utilisateurs une interface utilisateur leur permettant 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, envoyer des e-mails ou des messages à leurs contacts 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'opération 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 attribuer 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 limiter les distractions et de leur fournir des statistiques sur la façon dont ils se servent de leur appareil (par exemple, le temps d'utilisation par semaine).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent attribuer ce rôle à l'application.
  • L'application doit afficher des notifications d'alerte aux utilisateurs sur les appareils TV. L'application doit également afficher les notifications actives actuelles lorsque l'intent android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL est envoyé (à partir de 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 interface utilisateur permettant à l'utilisateur de confirmer qu'un appareil 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 de liaison) et peut lancer le processus d'association.
SYSTEM_DOCUMENT_MANAGER Tous les éléments suivants :
  • L'application est une application système.
  • Seuls les OEM peuvent attribuer ce rôle à l'application.
  • L'application dispose d'une activité qui permet aux utilisateurs d'accéder aux documents existants et de créer des documents sur l'appareil.
  • L'application doit respecter toutes les exigences décrites dans la section 2.2.3 du CDD Android. Logiciel sous la rubrique [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 la reconnaissance d'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 attribuer 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 paramètres 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 pouvant communiquer avec l'appareil HID de la télécommande du téléviseur (par exemple, via BLE), injecter des événements (par exemple, des clics de bouton) et envoyer d'autres données (par exemple, le flux audio d'un micro intégré à la télécommande) sur la plate-forme.
SYSTEM_UI_INTELLIGENCE Tous les éléments suivants :
  • Il s'agit d'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 d'UI du système (par exemple, la prédiction et l'affichage des prochaines applications pour les utilisateurs).
  • Le service doit respecter toutes les exigences décrites dans la section 9.8.6 Capture de contenu du CDD Android.
  • Le service ne peut pas disposer de l'autorisation android.permission.INTERNET. Au lieu de cela, il doit accéder à Internet via des API bien définies dans un projet Open Source.
  • Le service ne peut pas se lier aux applications, à l'exception des applications système suivantes : Bluetooth, Contacts, Média, Téléphonie, 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 système.
  • Le service ne peut pas partager de données avec les applications, sauf en cas d'action directe de l'utilisateur (par exemple, 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 :
  • Identiques aux conditions de SYSTEM_UI_INTELLIGENCE, à la différence que le service préinstallé fournit un processeur intelligent sur l'appareil pour l'audio ambiant (par exemple, pour reconnaître des titres diffusés à proximité de l'appareil).
SYSTEM_AUDIO_INTELLIGENCE Tous les éléments suivants :
  • Identiques aux conditions pour SYSTEM_UI_INTELLIGENCE, à l'exception du fait que le service préinstallé fournit un processeur intelligent sur l'appareil pour l'audio (par exemple, pour les sous-titres de vidéos, de podcasts, d'appels téléphoniques, d'appels vidéo et de messages audio).
SYSTEM_NOTIFICATION_INTELLIGENCE Tous les éléments suivants :
  • Identiques aux conditions pour SYSTEM_UI_INTELLIGENCE, à l'exception que le service préinstallé fournit un processeur intelligent sur l'appareil pour les notifications (par exemple, en suggérant des réponses et des actions pour les notifications de messages).
SYSTEM_TEXT_INTELLIGENCE Tous les éléments suivants :
  • Identiques aux conditions de SYSTEM_UI_INTELLIGENCE, à la différence que le service préinstallé fournit un processeur intelligent sur l'appareil pour le texte (par exemple, pour fournir une traduction instantanée ou la saisie automatique).
SYSTEM_VISUAL_INTELLIGENCE Tous les éléments suivants :
  • Identiques aux conditions de SYSTEM_UI_INTELLIGENCE, à la différence 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 la caméra. 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.
  • À partir d'Android 15
    Lors de l'établissement de la connexion initiale de l'appareil A à l'appareil B :
    Les deux appareils DOIVENT avoir au moins un compte correspondant dans leur AccountManager, et l'association doit être confirmée par un code à usage unique.
    • L'utilisateur doit confirmer le mot de passe du compte sur l'appareil distant secondaire lors de l'association des appareils.
    • Le code à usage unique doit être affiché sur l'appareil source et saisi sur l'appareil connecté.
    • Aucune plage requise pendant le streaming.

    Ou les appareils A et B DOIVENT se trouver à portée du signal Bluetooth l'un de l'autre, et le streaming doit être autorisé à l'aide d'un code à usage unique.
    • Le code à usage unique s'affiche sur l'appareil source et est saisi sur l'appareil connecté.
    • Les appareils doivent rester à portée du signal Bluetooth les uns des autres pendant la diffusion.
  • 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 leur connaissance des clés partagées) pour établir ces canaux de communication. Les canaux de communication doivent être protégés par chiffrement.
  • L'application peut envoyer des notifications de l'appareil local à l'appareil connecté pour permettre à l'utilisateur d'effectuer des actions sur les notifications sur l'appareil connecté.
  • être en mesure de diffuser les métadonnées nécessaires au streaming d'applications sur l'appareil connecté, telles que la liste des applications disponibles sur l'appareil local ;
  • Possibilité de diffuser des applications depuis l'appareil local vers l'appareil connecté une fois que l'utilisateur a indiqué son souhait de le faire avec un consentement explicite (sur le téléphone ou sur l'appareil connecté).
  • Possibilité de lire (injecter) les événements qui se produisent sur une application lue en streaming sur un appareil connecté sur l'appareil local. Par exemple, la lecture d'un événement tactile sur la tablette aux mêmes coordonnées sur le téléphone.
  • L'application peut remplacer le flux du micro de l'appareil local par le flux du micro d'un appareil connecté lorsqu'une application en streaming utilise le micro.
  • L'application capture le son de l'appareil et le diffuse sur l'appareil connecté.
  • Doit bloquer le flux de la caméra de l'appareil local lorsqu'une application en streaming utilise la caméra.
  • Doit vérifier l'intégrité du build de l'OS de l'appareil connecté (par exemple, à l'aide de l'attestation de l'appareil comme dans VerifiedBootState).
  • Ne diffusez des applications que si un seul compte correspond dans le registre de comptes sur l'appareil (par exemple, la classe AccountManager sur Android) sur les deux appareils. Dans le cas contraire, le streaming doit être autorisé à l'aide d'un code à usage unique affiché sur l'appareil source et saisi sur l'appareil connecté. Notez que dans le cas d'appareils compatibles avec le mode multi-utilisateur (et non les comptes multiples) avec la même isolation des données fiable, comme dans le cas d'un appareil Android multi-utilisateur, un utilisateur est comptabilisé comme un appareil.
  • Doit immédiatement arrêter la diffusion et se déconnecter d'un appareil connecté si l'authentification du compte sur l'appareil connecté expire ou est révoquée.
  • Les sessions de streaming d'application en cours doivent être interrompues si l'utilisateur n'interagit pas avec l'appareil connecté (par exemple, si le clavier, l'écran tactile et la souris sont inactifs) pendant cinq minutes. Les applications de streaming vidéo ne sont pas concernées par cette exigence.
  • À partir d'Android 15
     Doit déconnecter tous les appareils virtuels à l'expiration du délai d'inactivité de l'appareil à distance sur lequel le contenu de l'écran est visible. Peut garder l'écran de l'appareil distant allumé pour des cas tels que WakeLock, où l'écran de l'appareil Android reste allumé. Un délai avant expiration d'inactivité doit être présent. Si l'appareil distant ne dispose pas de lui-même de délai d'inactivité, un délai d'inactivité de cinq minutes maximum doit être utilisé.
  • Si l'appareil source 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é, sauf si cet appareil dispose d'un écran de verrouillage et qu'il est déverrouillé.
  • Si l'appareil 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 d'application sur les appareils à proximité (par exemple, à l'aide des paramètres DevicePolicyManager dans Android).
  • Vous devez vous assurer que l'écran à distance et toutes les sources des événements d'entrée à distance appartiennent au même appareil logique (par exemple, un écran distant et un clavier connecté) du point de vue de l'utilisateur. Les événements sont acheminés en conséquence.
  • L'utilisateur doit pouvoir arrêter la diffusion depuis l'appareil local, par exemple à l'aide d'un bouton dans une notification persistante. Ce comportement est contrôlé par l'écran de verrouillage, si le verrouillage de l'écran est configuré sur le téléphone. À partir d'Android 15, vous devez afficher cette affordance persistante sur l'appareil local, qui est toujours visible et au-dessus du pli.
  • Doit afficher une affordance sur l'appareil source lorsque le streaming se produit 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ès la sortie de l'usine au nom du 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 en téléchargeant et en installant le client Device Policy approprié pour lui attribuer le rôle de propriétaire de l'appareil ou du profil, si nécessaire.
  • L'application peut éventuellement mettre à jour de manière dynamique des ressources telles que des chaînes, des 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 de 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 de cet utilisateur.
SYSTEM_APP_PROTECTION_SERVICE Tous les éléments suivants :
  • L'application est une application système.
  • L'unique objectif de l'application est de détecter les applications potentiellement dangereuses (applications pouvant présenter un risque pour les utilisateurs, les données utilisateur ou les appareils, comme les chevaux de Troie, l'hameçonnage et les logiciels espions) ou les logiciels mobiles indésirables.
  • L'application doit respecter toutes les exigences décrites dans la section 9.8.6 du CDD Android. Données de veille et au niveau de l'OS
  • 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 se lier à des applications, à l'exception des applications système suivantes : Permission Controller et les composants fournissant des API de téléphonie et d'Internet. Chaque liaison autorisée doit être définie explicitement via la configuration <allow-association> dans la configuration système.
  • L'application ne doit pas partager de données avec d'autres applications, sauf en cas d'action directe de l'utilisateur (par exemple, l'utilisateur 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'UI sur le téléphone que l'utilisateur peut utiliser pour activer la synchronisation des agendas 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é qu'elle peut appeler via des requêtes d'intent implicites, qui indique la position actuelle de l'utilisateur et son environnement.
  • L'application dispose d'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 dispose d'une activité lancée sur le groupe d'instruments lorsque l'application détient le focus de navigation. L'activité doit afficher la position actuelle de l'utilisateur, son environnement 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 attribuer ce rôle à l'application.
  • Autorisez les utilisateurs à dupliquer les notifications et à accéder aux photos et 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 attribuer ce rôle à l'application.
  • dispose d'un service qui fournit des fonctionnalités d'intelligence pour l'application Paramètres, telles que les suggestions et la recherche.
NOTES Tous les éléments suivants :
  • L'application dispose d'une activité que les applications peuvent appeler via des requêtes d'intent implicites. L'activité permet à l'utilisateur de créer une note, que l'écran soit verrouillé ou déverrouillé.
  • L'application doit prendre en charge cette fonctionnalité en disposant d'une activité avec un filtre d'intent pour android.intent.action.CREATE_NOTE avec la catégorie android.intent.category.DEFAULT. L'activité doit également gérer correctement l'intent supplémentaire android.intent.extra.USE_STYLUS_MODE.
  • Les attributs de fichier manifeste showWhenLocked et turnScreenOn doivent être définis sur true.
COMPANION_DEVICE_GLASSES L'application peut envoyer des requêtes d'association et de gestion d'un appareil à lunettes (à 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 donnant 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.
  • À partir d'Android 15
    Lors de l'établissement de la connexion initiale de l'appareil A à l'appareil B :
    Les deux appareils DOIVENT avoir au moins un compte correspondant dans leur AccountManager, et l'association doit être confirmée par un code à usage unique.
    • L'utilisateur doit confirmer le mot de passe du compte sur l'appareil distant secondaire lors de l'association des appareils.
    • Le code à usage unique doit être affiché sur l'appareil source et saisi sur l'appareil connecté.
    • Aucune plage requise pendant le streaming.

    Ou les appareils A et B DOIVENT se trouver à portée du signal Bluetooth l'un de l'autre, et le streaming doit être autorisé à l'aide d'un code à usage unique.
    • Le code à usage unique s'affiche sur l'appareil source et est saisi sur l'appareil connecté.
    • Les appareils doivent rester à portée du signal Bluetooth 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 que ceux-ci 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 le chiffrement de bout en bout.
  • L'application peut envoyer des notifications de l'appareil local à l'appareil connecté pour permettre à l'utilisateur d'effectuer des actions sur les notifications sur l'appareil connecté.
  • être en mesure de diffuser les métadonnées nécessaires au streaming d'applications sur l'appareil connecté, telles que la liste des applications disponibles sur l'appareil local ;
  • Possibilité de diffuser des applications depuis l'appareil local vers l'appareil connecté une fois que l'utilisateur a indiqué son souhait de le faire avec un consentement explicite (sur le téléphone ou sur l'appareil connecté).
  • Être capable de relire (injecter) des événements qui se produisent dans une application diffusée en streaming sur un appareil connecté sur l'appareil local Par exemple, la lecture d'un événement tactile sur la tablette aux mêmes coordonnées que sur le téléphone ou la lecture d'un événement d'entrée qui s'est produit sur les lunettes avec la même sémantique d'entrée que sur le téléphone.
  • L'application peut remplacer le flux du micro de l'appareil local par le flux du micro d'un appareil connecté lorsqu'une application en streaming utilise le micro.
  • L'application capture le son de l'appareil et le diffuse sur l'appareil connecté.
  • Doit vérifier l'intégrité du build de l'OS de l'appareil connecté (par exemple, à l'aide de l'attestation de l'appareil comme dans VerifiedBootState).
  • Ne diffusez des applications que si un seul compte correspond dans le registre de comptes sur l'appareil (par exemple, la classe AccountManager sur Android) sur les deux appareils. Dans le cas contraire, le streaming doit être autorisé à l'aide d'un code à usage unique affiché sur l'appareil source et saisi sur l'appareil connecté. Notez que dans le cas d'appareils compatibles avec le mode multi-utilisateur (et non multi-compte) avec la même isolation fiable des données que dans le mode multi-utilisateur Android, un utilisateur compte comme un appareil.
  • Doit immédiatement arrêter la diffusion et se déconnecter d'un appareil connecté si l'authentification du compte sur l'appareil connecté expire ou est révoquée.
  • Si l'appareil source utilise LSKF, lorsque l'écran est verrouillé, l'application ne doit pas diffuser d'applications sur un appareil connecté, sauf si cet appareil dispose d'un écran de verrouillage et qu'il est déverrouillé.
  • Si l'appareil 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, à l'aide des paramètres DevicePolicyManager sur Android).
  • Doit s'assurer que l'écran distant et toutes les sources d'événements d'entrée à distance 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 arrêter la diffusion depuis l'appareil local, par exemple à l'aide d'un bouton dans une notification persistante. Ce comportement est contrôlé par l'écran de verrouillage, si le verrouillage de l'écran est activé sur le téléphone.
  • Doit afficher une affordance sur l'appareil source lorsque le streaming se produit 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.