Ruoli Android

Un ruolo è un nome univoco all'interno del sistema associato a determinate autorizzazioni e privilegi. Le app possono richiedere di mantenere determinati ruoli tramite l'API Android, in particolare richiamando metodi nella classe RoleManager .

Consulta l'elenco seguente per i ruoli disponibili e i requisiti corrispondenti.

Ruolo Requisiti
ASSISTENTE Almeno uno tra:
  • L'app dispone di un'attività che esegue azioni di assistenza, in base alle informazioni sul contesto dell'utente quando ha richiesto l'assistenza (ad esempio, il nome del pacchetto per l'app in primo piano corrente e le relative informazioni contestuali).
  • L'app dispone di un servizio di interazione vocale sempre attivo, controllato dall'autorizzazione android.permission.BIND_VOICE_INTERACTION , in grado di eseguire il riconoscimento vocale e ospitare sessioni di interazione vocale attive. Inoltre, l'app dispone di un flag esplicito che indica che il servizio è in grado di gestire l'azione di assistenza.
BROWSER Tutto di:
  • L'app dispone di un'attività, che le app possono richiamare tramite richieste di intent implicite, che visualizza una pagina Web corrispondente a un indirizzo http:// .
  • L'app deve gestire la navigazione tra i collegamenti. Cioè, se l'utente sta visualizzando una pagina web e fa clic su un indirizzo http:// nel testo, l'app deve essere in grado di visualizzare il contenuto corrispondente al collegamento selezionato senza ulteriore intervento da parte dell'utente.
  • L'app deve essere in grado di fornire le informazioni di geolocalizzazione corrente del dispositivo alle pagine Web quando viene richiesta e l'utente approva la richiesta.
COMUNICATORE Tutto di:
  • L'app dispone di un'attività, che le app possono richiamare tramite richieste di intenti impliciti, che fornisce l'interfaccia utente durante la chiamata mentre il dispositivo è impegnato in una chiamata.
  • L'app può gestire gli intenti delle chiamate in entrata, visualizzare le informazioni relative alla chiamata (ad esempio, il numero di telefono del chiamante) all'utente e consentire all'utente di rispondere o rifiutare la chiamata.
  • L'app fornisce all'utente un mezzo per avviare chiamate e visualizzare una cronologia delle chiamate sul proprio dispositivo.
sms Tutto di:
  • L'app soddisfa tutti i requisiti per le app SMS .
  • L'app ha un'attività, che le app possono richiamare tramite richieste di intenti implicite, che possono inviare un messaggio a un numero di telefono.
  • L'app dispone di un servizio, controllato dall'autorizzazione android.permission.SEND_RESPOND_VIA_MESSAGE e richiamabile da intenti impliciti, che può consegnare i messaggi ricevuti dall'app Telefono quando l'utente sceglie di rispondere tramite messaggio durante una chiamata in arrivo. L'app può consegnare messaggi tramite il proprio sistema di messaggistica.
  • L'app dispone di due ricevitori di trasmissione, uno controllato dall'autorizzazione android.permission.BROADCAST_SMS e uno controllato dall'autorizzazione android.permission.BROADCAST_WAP_PUSH , che possono ascoltare rispettivamente i messaggi SMS e MMS basati su testo inviati al dispositivo. L'app è quindi responsabile della scrittura dei messaggi al provider SMS e della notifica agli utenti.
EMERGENZA Tutto di:
  • L'app è un'app di sistema .
  • L'app dispone di un'attività che presenta le informazioni di emergenza dell'utente. Chiunque può accedere a questa schermata tramite il pulsante Emergenza nell'attività Chiamata di emergenza.
CASA L'app dispone di un'attività che può avviare la schermata iniziale quando l'utente preme il pulsante Home. La schermata iniziale dovrebbe mostrare le icone delle app, i widget e supportare la navigazione basata su pulsanti o gesti (ad esempio, scorrere verso l'alto per visualizzare tutte le app).
CALL_REDIRECTION L'app dispone di un servizio, controllato dall'autorizzazione android.permission.BIND_CALL_REDIRECTION_SERVICE , a cui il framework Telecom può associarsi. Il servizio riceve il numero di telefono in uscita dal framework Telecom ed esegue una delle seguenti azioni:
  • Consentire che la chiamata venga effettuata così com'è.
  • Modificare il numero in uscita per instradare tramite un numero proxy.
  • Annulla la chiamata.
CHIAMATA_SCREENING L'app dispone di un servizio, controllato dall'autorizzazione android.permission.BIND_SCREENING_SERVICE , che esegue due funzioni:
  1. Blocco/screening delle chiamate: il servizio può scegliere quali chiamate devono essere inviate all'app di composizione del telefono (e potenzialmente squillano, dato DND/volume) e quali devono essere inviate silenziosamente alla segreteria telefonica.
  2. Identificazione della chiamata: il servizio può identificare e visualizzare informazioni su una chiamata tramite un'interfaccia utente.
GALLERIA_SISTEMA Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app fornisce un'interfaccia utente che consente agli utenti di archiviare, organizzare e visualizzare video e immagini.
SISTEMA_AUTOMOTIVE_CLUSTER Tutto di:
  • L'app è un'app di sistema su Automotive.
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app fornisce funzionalità per un display del quadro strumenti automobilistico (in genere adiacente al volante) per consentire agli utenti di rispondere alle chiamate telefoniche e accedere agli elenchi dei contatti e ai registri delle chiamate.
COMPANION_DEVICE_WATCH L'app può effettuare richieste per essere associata e gestire un dispositivo di orologio (utilizzando l'API fornita dalla classe CompanionDeviceManager ). Una volta connessi l'orologio e l'app tramite l'interfaccia utente fornita dall'app, gli utenti possono gestire il proprio orologio dall'app, inclusa la sincronizzazione dei contatti e del calendario e la gestione delle notifiche e delle telefonate.
SYSTEM_AUTOMOTIVE_PROJECTION Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app consente di proiettare lo schermo del telefono sul display del veicolo. Consente ai conducenti di accedere e controllare le applicazioni sui telefoni Android, tra cui musica, navigazione, telefonate e ricerca Google, utilizzando meccanismi di input sul veicolo, inclusi touch, comandi al volante e comandi vocali.
SISTEMA_SHELL Tutto di:
  • L'app è un'app di sistema a cui è assegnato l'UID Process.SHELL_UID .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app fornisce un'interfaccia che funziona a livello di riga di comando in modo che gli utenti possano interagire con il sistema operativo Android. Ad esempio, visualizzare il contenuto di una cartella o avviare app. I comandi della shell possono essere eseguiti a livello di codice dalle app (a condizione che siano state concesse le autorizzazioni necessarie) o dallo strumento ADB.
CONTATTI_SISTEMA Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app fornisce un'interfaccia utente che consente agli utenti di gestire i propri contatti (ad esempio, visualizzare, condividere, aggiungere, rimuovere o cercare un contatto). L'app aggiorna il provider dei contatti quando l'utente aggiorna i propri contatti dall'app. Gli utenti possono anche chiamare, inviare e-mail o inviare messaggi di testo ai propri contatti dall'app.
SYSTEM_SPEECH_RECOGNIZER Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app fornisce un servizio in grado di eseguire il riconoscimento vocale.
  • Quando l'app riceve flussi di microfono in tempo reale da un'altra app per il riconoscimento vocale, attribuisce correttamente l'utilizzo del microfono all'app chiamante e aggiorna di conseguenza le statistiche sul funzionamento dell'applicazione.
SYSTEM_WIFI_COEX_MANAGER Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app dispone di un servizio che imposta dinamicamente un elenco di canali Wi-Fi che il dispositivo dovrebbe evitare di utilizzare a causa dell'interferenza cellulare.
SISTEMA_BENESSERE Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app dovrebbe fornire agli utenti funzionalità per ridurre la distrazione e fornire statistiche sugli utenti su come utilizzano il proprio dispositivo (ad esempio, il tempo trascorso davanti allo schermo ogni settimana).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app deve mostrare notifiche avvisate agli utenti sui dispositivi TV. L'app deve anche mostrare le notifiche attive correnti quando viene inviato l'intento android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL (da SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app deve essere in grado di rilevare i dispositivi periferici nelle sue vicinanze. Deve disporre di un'interfaccia utente in cui l'utente può confermare che un determinato dispositivo periferico deve essere associato e gestito da un'app. Una volta che l'utente conferma, l'app di gestione concede all'app associata l'autorizzazione ad accedere al dispositivo periferico (ad esempio, nome, indirizzo, classe e stato di collegamento) e può avviare il processo di collegamento.
SYSTEM_DOCUMENT_MANAGER Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app dispone di un'attività che consente agli utenti di accedere ai documenti esistenti e di creare nuovi documenti sul dispositivo.
  • L'app deve soddisfare tutti i requisiti delineati nella sezione 2.2.3 del CDD Android. Software sotto la voce [3.2.3.1/H-0-1] .
SYSTEM_ACTIVITY_RECOGNIZER Tutto di:
  • L'app è un'app di sistema .
  • L'app dispone di un servizio, gestito da android.permission.ACTIVITY_RECOGNITION , in grado di eseguire il riconoscimento dell'attività (ad esempio, corsa o ciclismo).
SISTEMA_UI Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app dispone di un'interfaccia che consente agli utenti di interagire con i propri telefoni. Ad esempio, la schermata principale del telefono, la navigazione, le applicazioni recenti, le impostazioni rapide, la barra delle notifiche, la schermata di blocco, il controllo del volume.
SYSTEM_TELEVISION_REMOTE_SERVICE Tutto di:
  • L'app è un'app di sistema su Android TV.
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app dispone di un servizio in grado di comunicare con il dispositivo HID del telecomando del televisore (ad esempio tramite BLE), inserire eventi (ad esempio clic sui pulsanti) e inviare altri dati (ad esempio flusso audio da un microfono integrato nel telecomando ) nella piattaforma.
SYSTEM_UI_INTELLIGENCE Tutto di:
  • Si tratta di un servizio preinstallato che fornisce, tramite API del framework (API pubbliche o di sistema), un processore intelligente sul dispositivo per le funzionalità dell'interfaccia utente del sistema (ad esempio, prevedere e mostrare le app successive per gli utenti).
  • Il servizio deve soddisfare tutti i requisiti delineati nella sezione 9.8.6 Acquisizione dei contenuti del CDD Android.
  • Non può avere l'autorizzazione android.permission.INTERNET . Deve invece accedere a Internet tramite API ben definite in un progetto open source.
  • Non può essere associato alle app, ad eccezione delle seguenti app di sistema: Bluetooth, Contatti, Media, Telefonia, SystemUI e componenti che forniscono API Internet. Ogni associazione consentita deve essere impostata esplicitamente tramite la configurazione <allow-association> nella configurazione di sistema.
  • Non può condividere dati con app a meno che non vi sia un'azione diretta da parte dell'utente (ad esempio, l'utente preme esplicitamente un pulsante ogni volta che i dati vengono condivisi).
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE Tutto di:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE , tranne per il fatto che il servizio preinstallato fornisce un processore intelligente sul dispositivo per l'audio ambientale (ad esempio, riconoscendo i brani riprodotti vicino al dispositivo).
SISTEMA_AUDIO_INTELLIGENZA Tutto di:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE , tranne per il fatto che il servizio preinstallato fornisce un processore intelligente sul dispositivo per l'audio (ad esempio, sottotitoli di video, podcast, telefonate, videochiamate e messaggi audio).
SYSTEM_NOTIFICATION_INTELLIGENCE Tutto di:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE , tranne per il fatto che il servizio preinstallato fornisce un processore intelligente sul dispositivo per le notifiche (ad esempio suggerendo risposte e azioni per le notifiche dei messaggi).
SYSTEM_TEXT_INTELLIGENCE Tutto di:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE , tranne per il fatto che il servizio preinstallato fornisce un processore intelligente sul dispositivo per il testo (ad esempio fornendo traduzione in tempo reale o compilazione automatica).
SYSTEM_VISUAL_INTELLIGENCE Tutto di:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE , tranne per il fatto che il servizio preinstallato fornisce un processore intelligente sul dispositivo per funzionalità visive che implicano l'analisi dei dati della fotocamera. Ad esempio, mantenendo vivo lo schermo del telefono mentre l'utente lo guarda o determinando l'orientamento ideale dello schermo in base all'orientamento del viso dell'utente dalla fotocamera frontale del dispositivo.
COMPANION_DEVICE_APP_STREAMING Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app può creare e gestire canali di comunicazione con i dispositivi collegati in modo che possano scambiare dati. L'app e i dispositivi connessi devono autenticarsi a vicenda con successo (ad esempio, dimostrando la conoscenza delle chiavi condivise) per stabilire questi canali di comunicazione. I canali di comunicazione devono avere una protezione crittografica.
  • L'app può inviare notifiche dal dispositivo locale al dispositivo connesso per consentire all'utente di agire sulle notifiche sul dispositivo connesso.
  • Essere in grado di trasmettere i metadati necessari per lo streaming delle app al dispositivo connesso, come l'elenco delle applicazioni disponibili sul dispositivo locale.
  • Essere in grado di eseguire lo streaming di applicazioni dal dispositivo locale al dispositivo connesso dopo che l'utente ha indicato il proprio desiderio di farlo con il consenso esplicito (sul telefono o sul dispositivo connesso).
  • Essere in grado di riprodurre (inserire) eventi che si verificano su un'applicazione in streaming su un dispositivo connesso sul dispositivo locale. Ad esempio, riprodurre un evento touch sul tablet alle stesse coordinate sul telefono.
  • L'app può sostituire il flusso del microfono del dispositivo locale con il flusso del microfono di un dispositivo connesso mentre un'app in streaming utilizza il microfono.
  • L'app acquisisce l'audio dal dispositivo e lo trasmette in streaming al dispositivo connesso.
  • È necessario bloccare lo streaming della fotocamera del dispositivo locale mentre un'app in streaming utilizza la fotocamera.
  • È necessario verificare l'integrità della build del sistema operativo del dispositivo connesso (ad esempio, utilizzando l'attestazione del dispositivo come in VerifiedBootState ).
  • Trasmetti in streaming solo le app in cui è presente un solo account corrispondente nel registro degli account sul dispositivo (ad esempio, AccountManager su Android) su entrambi i dispositivi. In caso contrario lo streaming dovrà essere autorizzato con un codice monouso mostrato sul dispositivo sorgente ed inserito sul dispositivo connesso. Tieni presente che in caso di dispositivi che supportano più utenti (e non più account) con lo stesso isolamento dei dati garantito come in Android multiutente , un utente conta come un dispositivo.
  • È necessario interrompere lo streaming e disconnettersi immediatamente da un dispositivo connesso se l'autenticazione dell'account sul dispositivo connesso scade o viene revocata.
  • È necessario verificare che un dispositivo connesso si trovi nel raggio d'azione del Bluetooth del dispositivo locale prima e durante lo streaming.
  • È necessario disconnettere le sessioni di streaming dell'app in corso se l'utente non interagisce con il dispositivo connesso (ad esempio, tastiera, touch screen e mouse sono inattivi) per 5 minuti. Le app di streaming video sono esenti da questo requisito.
  • Se il dispositivo di origine utilizza Lockscreen Knowledge Factor (LSKF), quando lo schermo è bloccato, l'app non deve eseguire lo streaming di applicazioni su un dispositivo connesso a meno che tale dispositivo non abbia una schermata di blocco e sia sbloccato.
  • Se il dispositivo è gestito da un amministratore, l'app deve rispettare i criteri impostati dall'amministratore sull'attivazione o la disattivazione dello streaming dell'app sui dispositivi vicini (ad esempio, utilizzando le impostazioni DevicePolicyManager in Android).
  • È necessario garantire che il display remoto e tutte le origini degli eventi di input remoti appartengano allo stesso dispositivo logico (ad esempio, un display remoto e una tastiera collegata) dal punto di vista dell'utente e che gli eventi vengano instradati di conseguenza.
  • L'utente deve essere in grado di terminare lo streaming dal dispositivo locale, ad esempio, utilizzando un pulsante in una notifica persistente. Questo comportamento è controllato dalla schermata di blocco, se sul telefono è impostato il blocco schermo.
  • Deve mostrare un'affordance sul dispositivo di origine quando lo streaming avviene su un altro dispositivo, come un'icona nella barra di stato o una notifica persistente.
DEVICE_POLICY_MANAGEMENT Tutto di:
  • Solo gli OEM possono concedere questo ruolo all'app. Le applicazioni non possono richiedere questo ruolo poiché è destinato a essere concesso immediatamente al nome del pacchetto definito dall'OEM al momento della spedizione del dispositivo.
  • L'app deve essere in grado di fornire un profilo gestito (proprietario del profilo) o un dispositivo gestito (proprietario del dispositivo), incluso il download/l'installazione del client Device Policy appropriato per essere il proprietario del dispositivo/profilo, se necessario.
  • L'app può facoltativamente aggiornare dinamicamente risorse come stringhe e drawable utilizzati per la gestione dei criteri del dispositivo.
  • L'app può essere un'app di sistema preinstallata oppure essere scaricata e installata prima del provisioning.
  • Per i casi di provisioning del proprietario del profilo, quando l'app del titolare del ruolo è installata su un determinato utente Android , deve essere installata su tutti i profili applicabili per quell'utente.
SYSTEM_APP_PROTECTION_SERVICE Tutto di:
  • L'app è un'app di sistema .
  • L'unico scopo dell'app è rilevare app potenzialmente dannose (app che potrebbero mettere a rischio utenti, dati utente o dispositivi come trojan, app di phishing e spyware) o software mobile indesiderato .
  • L'app deve soddisfare tutti i requisiti delineati nella sezione 9.8.6 Acquisizione dei contenuti del CDD Android.
  • Non deve dichiarare l'autorizzazione normale android.permission.INTERNET . Deve invece accedere a Internet tramite API ben definite in un progetto open source.
  • Non deve essere associato alle app, ad eccezione delle seguenti app di sistema: Permission Controller e componenti che forniscono API Internet. Ogni associazione consentita deve essere impostata esplicitamente tramite la configurazione <allow-association> nella configurazione di sistema.
  • Non deve condividere dati con le app a meno che non vi sia un'azione diretta dell'utente (ad esempio, l'utente preme esplicitamente un pulsante ogni volta che i dati vengono condivisi).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • È necessario trasferire i dati del calendario dal telefono iOS o Android dell'utente al dispositivo Android Auto. Il dispositivo Android Auto deve memorizzare questi dati del calendario nel provider del calendario .
  • L'app deve fornire un componente dell'interfaccia utente sul telefono che l'utente può utilizzare per attivare la sincronizzazione del calendario e selezionare i calendari da sincronizzare. L'app deve fornire un componente dell'interfaccia utente sul telefono che l'utente può utilizzare per disattivare la sincronizzazione del calendario.
  • Dovrebbe funzionare senza una connessione Internet. Ad esempio, utilizzando connessioni cablate o wireless dirette.
AUTOMOTIVE_NAVIGAZIONE Tutto di:
  • L'app dispone di un'attività, che le app possono richiamare tramite richieste di intenti implicite, che mostra la posizione corrente e i dintorni dell'utente.
  • L'app dispone di un'attività, che le app possono richiamare tramite richieste di intenti impliciti, che consente all'utente di spostarsi verso una posizione geografica specificata.
  • Ha un'attività che viene avviata sul quadro strumenti quando l'app mantiene il focus sulla navigazione . L'attività deve mostrare la posizione corrente dell'utente, i dintorni e consentirgli di navigare verso una posizione geografica specificata.
COMPANION_DEVICE_COMPUTER Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • Consenti agli utenti di eseguire il mirroring delle notifiche e di accedere a foto e contenuti multimediali dal telefono su un computer connesso.
SYSTEM_SETTINGS_INTELLIGENCE Almeno uno tra:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • Dispone di un servizio che fornisce funzionalità di intelligence per l'app Impostazioni, come suggerimenti e ricerca.
APPUNTI Tutto di:
COMPANION_DEVICE_GLASSES L'app può effettuare richieste per essere associata e gestire un dispositivo occhiali (utilizzando l'API fornita dalla classe CompanionDeviceManager ). Una volta connessi il dispositivo per occhiali e l'app utilizzando l'interfaccia utente fornita da CDM, gli utenti possono gestire il proprio dispositivo per occhiali concedendogli l'accesso ai contatti e l'autorizzazione per gestire notifiche e telefonate.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Tutto di:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app può creare e gestire canali di comunicazione con i dispositivi collegati in modo che i dispositivi possano scambiare dati. L'app e i dispositivi connessi devono autenticarsi a vicenda con successo (ad esempio, dimostrando la conoscenza delle chiavi condivise) per stabilire questi canali di comunicazione. I canali di comunicazione devono avere una protezione crittografica.
  • L'app può inviare notifiche dal dispositivo locale al dispositivo connesso per consentire all'utente di agire sulle notifiche sul dispositivo connesso.
  • Essere in grado di trasmettere i metadati necessari per lo streaming delle app al dispositivo connesso, come l'elenco delle applicazioni disponibili sul dispositivo locale.
  • Essere in grado di eseguire lo streaming di applicazioni dal dispositivo locale al dispositivo connesso dopo che l'utente ha indicato il proprio desiderio di farlo con il consenso esplicito (sul telefono o sul dispositivo connesso).
  • Essere in grado di riprodurre (inserire) eventi che si verificano su un'applicazione in streaming su un dispositivo connesso sul dispositivo locale. Ad esempio, la riproduzione di un evento touch sul tablet alle stesse coordinate del telefono o la riproduzione di un evento di input che si è verificato sul dispositivo occhiali con la stessa semantica di input del telefono.
  • L'app può sostituire il flusso del microfono del dispositivo locale con il flusso del microfono di un dispositivo connesso mentre un'app in streaming utilizza il microfono.
  • L'app acquisisce l'audio dal dispositivo e lo trasmette in streaming al dispositivo connesso.
  • È necessario verificare l'integrità della build del sistema operativo del dispositivo connesso (ad esempio, utilizzando l'attestazione del dispositivo come in VerifiedBootState ).
  • Trasmetti in streaming solo le app in cui è presente un solo account corrispondente nel registro degli account sul dispositivo (ad esempio, AccountManager su Android) su entrambi i dispositivi. In caso contrario lo streaming dovrà essere autorizzato con un codice monouso mostrato sul dispositivo sorgente ed inserito sul dispositivo connesso. Tieni presente che in caso di dispositivi che supportano più utenti (e non più account) con lo stesso isolamento dei dati garantito come in Android multiutente , un utente conta come un dispositivo.
  • È necessario interrompere lo streaming e disconnettersi immediatamente da un dispositivo connesso se l'autenticazione dell'account sul dispositivo connesso scade o viene revocata.
  • Se il dispositivo di origine utilizza Lockscreen Knowledge Factor (LSKF), quando lo schermo è bloccato, l'app non deve eseguire lo streaming di applicazioni su un dispositivo connesso a meno che tale dispositivo non abbia una schermata di blocco e sia sbloccato.
  • Se il dispositivo è gestito da un amministratore, l'app deve rispettare i criteri impostati dall'amministratore sull'attivazione o la disattivazione dello streaming sui dispositivi vicini (ad esempio, utilizzando le impostazioni DevicePolicyManager in Android).
  • È necessario garantire che il display remoto e tutte le origini degli eventi di input remoti appartengano allo stesso dispositivo logico (ad esempio, un display remoto e una tastiera collegata) dal punto di vista dell'utente e che gli eventi vengano instradati di conseguenza.
  • L'utente deve essere in grado di terminare lo streaming dal dispositivo locale, ad esempio, utilizzando un pulsante in una notifica persistente. Questo comportamento è controllato dalla schermata di blocco, se sul telefono è impostato il blocco schermo.
  • Deve mostrare un'affordance sul dispositivo di origine quando lo streaming avviene su un altro dispositivo, come un'icona nella barra di stato o una notifica persistente.