Rôles Android

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

Consultez la liste suivante pour connaître les rôles disponibles et les conditions requises correspondantes.

Role Exigences
ASSISTANT Au moins l'un des éléments suivants :
  • L'application comporte une activité qui effectue des actions d'assistance en fonction des informations sur le contexte de l'utilisateur lorsqu'il a demandé l'aide (par exemple, le nom du package de l'application au premier plan actuelle et ses informations contextuelles).
  • L'application dispose d'un service d'interaction vocale toujours activée, restreint 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 comporte un indicateur explicite indiquant que le service est capable de gérer l'action d'assistance.
NAVIGATEUR 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 lorsque cela est demandé 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 de l'appel lorsque l'appareil est en communication.
  • 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 lui permettre de répondre à l'appel ou de le refuser.
  • L'application permet à l'utilisateur d'initier des appels et de consulter l'historique des appels sur son appareil.
SMS Tous les éléments suivants :
  • L'application remplit toutes les conditions requises pour les 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 peut distribuer 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 restreint par l'autorisation android.permission.BROADCAST_SMS et l'autre par l'autorisation android.permission.BROADCAST_WAP_PUSH, qui peuvent écouter les SMS et les MMS envoyés à partir de l'appareil, respectivement. L'application se charge ensuite d'écrire les messages à destination du fournisseur de SMS et d'en informer les utilisateurs.
URGENCE Tous les éléments suivants :
  • Il s'agit d'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.
MAISON 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 des icônes d'application et des widgets, et permettre la navigation en fonction de boutons ou de gestes (par exemple, en balayant l'écran vers le haut pour voir toutes les applications).
REDIRIGATION_APPEL 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 Telecom et effectue l'une des actions suivantes :
  • Autorisez le passage de l'appel tel quel.
  • Modifiez le numéro sortant pour acheminer le trafic via un numéro de procuration.
  • Annulez l'appel.
FILTRAGE_D'APPELS L'application dispose d'un service, contrôlé par l'autorisation android.permission.BIND_SCREENING_SERVICE, qui exécute deux fonctions :
  1. Blocage/Filtrage des appels:le service peut choisir quels appels doivent être envoyés à l'application Téléphone sur le téléphone (et éventuellement sonner en fonction du mode Ne pas déranger ou du volume), et ceux qui doivent être renvoyés silencieusement vers la messagerie vocale.
  2. Identification de l'appel:le service peut identifier et afficher des informations sur un appel via une interface utilisateur.
GALERIE_SYSTÈME Tous les éléments suivants :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application fournit une interface utilisateur permettant aux utilisateurs de stocker, d'organiser et d'afficher leurs vidéos et leurs images.
SYSTEM_AUTOMOTIVE_CLUSTER Tous les éléments suivants :
  • Il s'agit d'une application système sur Automotive.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application fournit une fonctionnalité d'affichage de cluster automobile (généralement à côté du volant) permettant aux utilisateurs de répondre aux appels téléphoniques et d'accéder aux listes de contacts et aux journaux d'appels.
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). Une fois que 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 :
  • Il s'agit d'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 installées sur leurs téléphones Android, y compris de la musique, de la navigation, des appels téléphoniques et de la recherche Google, à l'aide de mécanismes de saisie dans le véhicule, y compris les commandes tactiles, au volant et vocales.
ÉQUIPE_SYSTÈME Tous les éléments suivants :
  • Il s'agit d'une application système à laquelle l'UID Process.SHELL_UID est attribué.
  • 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 :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder 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 Contacts lorsque l'utilisateur met à jour ses contacts depuis l'application. Les utilisateurs peuvent également les appeler, leur envoyer des e-mails ou des SMS depuis l'application.
SYSTEM_SPEECH_RECOGNIZER Tous les éléments suivants :
  • Il s'agit d'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 de fonctionnement de l'application en conséquence.
SYSTEM_WIFI_COEX_MANAGER Tous les éléments suivants :
  • Il s'agit d'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.
BIEN-ÊTRE_SYSTÈME Tous les éléments suivants :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application doit fournir aux utilisateurs des fonctionnalités leur permettant 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).
HANDLER_DE_NOTIFICATION_SYSTÈME_TÉLÉVISION Tous les éléments suivants :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application doit afficher des notifications prioritaires pour les utilisateurs de téléviseurs. L'application doit également afficher les notifications actives lorsque l'intent android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL est envoyé (à partir de SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Tous les éléments suivants :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application doit être capable de détecter les appareils périphériques à proximité. Elle doit disposer d'une interface utilisateur permettant à l'utilisateur de confirmer qu'un périphérique donné doit être associé et géré par une application. Une fois que 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 :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • L'application dispose d'une activité qui permet aux utilisateurs d'accéder aux documents existants et d'en créer sur l'appareil.
  • L'appli doit respecter toutes les exigences décrites dans la section 2.2.3. Software dans la section [3.2.3.1/H-0-1].
RÉCOGNAGE_D'ACTIVITÉ_SYSTÈME Tous les éléments suivants :
  • Il s'agit d'une application système.
  • L'application dispose d'un service contrôlé par android.permission.ACTIVITY_RECOGNITION qui peut effectuer la reconnaissance de l'activité (par exemple, la course à pied ou le vélo).
UI_SYSTÈME Tous les éléments suivants :
  • Il s'agit d'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, la navigation, les applications récentes, les réglages rapides, la barre de notification, l'écran de verrouillage et le réglage du volume du téléphone.
SYSTEM_TELEVISION_REMOTE_SERVICE Tous les éléments suivants :
  • Il s'agit d'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 du téléviseur (par exemple, via BLE), injecter des événements (par exemple, des clics sur des boutons) et envoyer d'autres données (par exemple, le flux audio d'un micro intégré à la télécommande) à la plate-forme.
SYSTEM_UI_INTELLIGENCE Tous les éléments suivants :
  • 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, 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 Capture de contenu du CDD Android.
  • Il ne peut pas disposer de l'autorisation android.permission.INTERNET. Il doit accéder à Internet via des API bien définies dans un projet Open Source.
  • Elle ne peut pas être liée à 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 définie explicitement via la configuration <allow-association> dans la configuration système.
  • Elle ne peut pas partager de données avec des 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 la reconnaissance de titres diffusés à proximité de l'appareil).
INTELLIGENCE_AUDIO_SYSTÈME 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 contenu audio (par exemple, le sous-titrage de vidéos, les podcasts, les appels téléphoniques, les appels vidéo et les messages audio).
SYSTEM_NOTIFICATION_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 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 :
  • 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 la traduction instantanée ou la saisie automatique).
INTELLIGENCE_VISUELLE_SYSTÈME 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 caméra. Par exemple, conserver l'écran du téléphone actif pendant que 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 frontale de l'appareil.
COMPANION_DEVICE_APP_STREAMING Tous les éléments suivants :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • 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.
  • L'application peut envoyer des notifications de l'appareil local à l'appareil connecté pour permettre à l'utilisateur d'agir sur les notifications sur l'appareil connecté.
  • Être en mesure de diffuser sur l'appareil connecté les métadonnées nécessaires au streaming d'application, telles que la liste des applications disponibles sur l'appareil local
  • Être en mesure de diffuser des applications depuis l'appareil local vers l'appareil connecté une fois que l'utilisateur a indiqué qu'il préférait le faire avec son 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 répétition 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 celui d'un appareil connecté lorsqu'une application en streaming utilise le micro.
  • L'application enregistre le contenu audio 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é de la version de l'OS de l'appareil connecté (par exemple, à l'aide de l'attestation d'appareil, comme dans VerifiedBootState) ;
  • Ne diffusez en streaming que les applications lorsqu'il n'existe qu'un seul compte correspondant dans le registre des comptes de l'appareil (par exemple, AccountManager sur Android) sur les deux appareils. Si ce n'est pas le cas, le streaming doit être autorisé à l'aide d'un code 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-comptes) 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 arrêter la diffusion et se déconnecter immédiatement d'un appareil connecté si l'authentification du compte sur l'appareil connecté expire ou est révoquée.
  • Vous devez vérifier qu'un appareil connecté se trouve à portée du signal Bluetooth de l'appareil local avant et pendant la diffusion.
  • Vous devez déconnecter les sessions de streaming d'application en cours si l'utilisateur n'interagit pas avec l'appareil connecté (par exemple, 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.
  • Si l'appareil source utilise le paramètre LSKF (Lockscreen Knowledge Factor), lorsque l'écran est verrouillé, l'application ne doit pas diffuser d'applications en streaming sur un appareil connecté, sauf si celui-ci dispose d'un écran de verrouillage et 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 sous 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 mettre fin à la diffusion en streaming 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 la diffusion 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 attribuer ce rôle à l'application. Les applications ne peuvent pas demander ce rôle, car il est conçu pour être attribué directement 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 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 façon 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 de rôle est installée pour 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 :
  • Il s'agit d'une application système.
  • L'unique objectif de l'application est de détecter les applications potentiellement dangereuses (applications susceptibles de 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'appli doit répondre à toutes les exigences décrites dans la section 9.8.6 du CDD Android. Données de veille et au niveau de l'OS
  • Elle ne doit pas déclarer l'autorisation normale android.permission.INTERNET. Il doit accéder à Internet via des API bien définies dans un projet Open Source.
  • Il ne doit pas être lié à des applications, à l'exception des applications système suivantes : contrôleur d'autorisations et composants fournissant les API de téléphonie et Internet. Chaque liaison autorisée doit être définie explicitement via la configuration <allow-association> dans la configuration système.
  • Elle ne doit pas partager de données avec les 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_AUTOMOTIVE_AGE_SYNC_MANAGER Tous les éléments suivants :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • Vous devez 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 auprès du 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 d'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'appareil doit fonctionner sans connexion Internet. (par exemple, en utilisant des connexions filaires ou sans fil directes).
NAVIGATION_AUTOMATIQUE 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 comporte une activité que les applications peuvent appeler via des requêtes d'intent implicites, qui permettent à l'utilisateur d'accéder à un emplacement géographique spécifié.
  • possède une activité qui est lancée sur le cluster d'instruments lorsque l'application conserve le ciblage dans la navigation. L'activité doit afficher la position actuelle de l'utilisateur et son environnement, et lui permettre d'accéder à une géolocalisation spécifiée.
COMPANION_DEVICE_COMPUTER Tous les éléments suivants :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder 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 :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • Propose un service qui fournit des fonctionnalités intelligentes pour l'application Paramètres, telles que les suggestions et la recherche.
REMARQUES Tous les éléments suivants :
  • L'application comporte une activité que les applications peuvent appeler via des requêtes d'intent implicites. L'activité permet à un utilisateur de créer une note, que l'écran soit verrouillé ou déverrouillé.
  • L'application doit permettre cette opération en disposant d'une activité comportant un filtre d'intent pour android.intent.action.CREATE_NOTE avec la catégorie android.intent.category.DEFAULT. L'activité doit également gérer de manière appropriée l'intent supplémentaire android.intent.extra.USE_STYLUS_MODE.
  • Les attributs showWhenLocked et turnScreenOn du fichier manifeste de l'application doivent être définis sur true.
GLASSES_APPAREILS_COMPANIONNELS 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). Une fois que les lunettes sont connectées à l'application à l'aide de l'UI fournie par CDM, les utilisateurs peuvent gérer leur appareil en l'autorisant à accéder aux contacts et à gérer les notifications et les appels téléphoniques.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Tous les éléments suivants :
  • Il s'agit d'une application système.
  • Seuls les OEM peuvent accorder ce rôle à l'application.
  • 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 un chiffrement.
  • L'application peut envoyer des notifications de l'appareil local à l'appareil connecté pour permettre à l'utilisateur d'agir sur les notifications sur l'appareil connecté.
  • Être en mesure de diffuser sur l'appareil connecté les métadonnées nécessaires au streaming d'application, telles que la liste des applications disponibles sur l'appareil local
  • Être en mesure de diffuser des applications depuis l'appareil local vers l'appareil connecté une fois que l'utilisateur a indiqué qu'il préférait le faire avec son 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, relecture d'un événement tactile sur la tablette aux mêmes coordonnées que sur le téléphone ou relecture d'un événement d'entrée qui s'est produit sur l'appareil Glass 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 celui d'un appareil connecté lorsqu'une application en streaming utilise le micro.
  • L'application enregistre le contenu audio 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 d'appareil, comme dans VerifiedBootState) ;
  • Ne diffusez en streaming que les applications lorsqu'il n'existe qu'un seul compte correspondant dans le registre des comptes de l'appareil (par exemple, le AccountManager sur Android) sur les deux appareils. Si ce n'est pas le cas, le streaming doit être autorisé à l'aide d'un code unique affiché sur l'appareil source et saisi sur l'appareil connecté. Notez que sur les appareils compatibles avec le mode multi-utilisateur (et non avec plusieurs comptes) avec la même isolation de données garantie, comme dans le cas d'un appareil Android multi-utilisateur, un utilisateur est comptabilisé comme un appareil.
  • Doit arrêter la diffusion et se déconnecter immédiatement d'un appareil connecté si l'authentification du compte sur l'appareil connecté expire ou est révoquée.
  • Si l'appareil source utilise le paramètre LSKF (Lockscreen Knowledge Factor), lorsque l'écran est verrouillé, l'application ne doit pas diffuser d'applications en streaming sur un appareil connecté, sauf si celui-ci dispose d'un écran de verrouillage et 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 sur les appareils à proximité (par exemple, à l'aide des paramètres DevicePolicyManager sous Android).
  • Vous devez vous assurer que l'affichage à 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 mettre fin à la diffusion en streaming 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 la diffusion est en cours sur un autre appareil, comme une icône dans la barre d'état ou une notification persistante.