Ruoli Android

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

Consulta il seguente elenco per conoscere i ruoli disponibili e i relativi requisiti.

Role Requisiti
ASSISTENTE Almeno uno dei seguenti:
  • L'app ha un'attività che esegue azioni indirette, date le informazioni sul contesto dell'utente quando ha richiesto l'assistenza (ad esempio, il nome del pacchetto dell'app corrente in primo piano e le relative informazioni contestuali).
  • L'app dispone di un servizio di interazione vocale sempre attivo, controllato dall'autorizzazione android.permission.BIND_VOICE_INTERACTION, che può eseguire il riconoscimento vocale e ospitare sessioni di interazione vocale attiva. Inoltre, l'app ha un flag esplicito che indica che il servizio è in grado di gestire l'azione di evento indiretto.
BROWSER Tutte:
  • L'app ha un'attività che le app possono richiamare tramite richieste di intent implicite, che mostra una pagina web corrispondente a un indirizzo http://.
  • L'app deve gestire la navigazione tra i link. In altre parole, se l'utente visualizza una pagina web e fa clic su un indirizzo http:// nel testo, l'app deve essere in grado di mostrare i contenuti corrispondenti al link selezionato senza ulteriore intervento dell'utente.
  • L'app deve essere in grado di fornire le informazioni di geolocalizzazione correnti del dispositivo alle pagine web quando viene richiesta e l'utente approva la richiesta.
QUADRO Tutte:
  • L'app ha un'attività che le app possono richiamare tramite richieste di intent implicite, che fornisce l'interfaccia utente durante la chiamata mentre il dispositivo è in una chiamata.
  • L'app può gestire gli intent di chiamata in arrivo, mostrare all'utente le informazioni relative alla chiamata (ad esempio il numero di telefono del chiamante) e consentire all'utente di rispondere o rifiutare.
  • L'app fornisce all'utente un mezzo per avviare chiamate e visualizzare una cronologia delle chiamate sul proprio dispositivo.
SMS Tutte:
  • L'app soddisfa tutti i requisiti per le app per SMS.
  • L'app ha un'attività che le app possono richiamare tramite richieste di intent implicite, che può 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 intent 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ò inviare messaggi tramite il proprio sistema di messaggistica.
  • L'app ha due broadcast receiver, uno gestito 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 inviati al dispositivo. L'app è quindi responsabile di scrivere i messaggi per il provider di SMS e di avvisare gli utenti.
EMERGENZA Tutte:
  • L'app è un'app di sistema .
  • L'app ha un'attività che presenta le informazioni per le emergenze dell'utente. Chiunque può accedere a questa schermata tramite il pulsante di emergenza nell'attività Telefono di emergenza.
CASA L'app ha un'attività che può avviare la schermata Home quando l'utente preme il pulsante Home. Nella schermata Home dovrebbero essere visualizzate le icone delle app, i widget e la navigazione di supporto in base ai pulsanti o ai gesti (ad esempio, lo scorrimento verso l'alto per visualizzare tutte le app).
CALL_REDIRECTION L'app ha un servizio, gestito 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:
  • Consenti di effettuare la chiamata così com'è.
  • Modificare il numero in uscita in modo che venga inoltrato tramite un numero proxy.
  • Annulla la chiamata.
SCHERMATA_CHIAMATA L'app dispone di un servizio, controllato dall'autorizzazione android.permission.BIND_SCREENING_SERVICE, che esegue due funzioni:
  1. Blocco/filtro delle chiamate:il servizio può scegliere quali chiamate devono essere inviate all'app Telefono sul telefono (e potenzialmente far squillare, in base alla funzionalità DND/volume) e quali devono essere inviate in modalità silenziosa alla segreteria.
  2. Identificazione chiamate: il servizio può identificare e visualizzare le informazioni su una chiamata tramite un'interfaccia utente.
GALLERIA_SISTEMA Tutte:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app fornisce agli utenti una UI per archiviare, organizzare e visualizzare video e immagini.
SYSTEM_AUTOMOTIVE_CLUSTER Tutte:
  • 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 cluster automobilistico (generalmente adiacente al volante) che consente agli utenti di rispondere alle telefonate e accedere agli elenchi contatti e ai registri chiamate.
COMPANION_DEVICE_WATCH L'app può effettuare richieste di associazione a e gestire uno smartwatch (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 smartwatch dall'app, ad esempio sincronizzando contatti e calendario e gestendo notifiche e chiamate.
SYSTEM_AUTOMOTIVE_PROJECTION Tutte:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app consente di proiettare lo schermo dello smartphone sul display del veicolo. Consente ai conducenti di accedere alle app degli smartphone Android e controllarle, incluse musica, navigazione, telefonate e la Ricerca Google, utilizzando meccanismi di immissione sul veicolo, tra cui controlli touch, comandi al volante e comandi vocali.
SHELL_SISTEMA Tutte:
  • 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 della riga di comando, in modo che gli utenti possano interagire con il sistema operativo Android. Ad esempio, mostrare i contenuti di una cartella o avviare app. I comandi Shell possono essere eseguiti in modo programmatico dalle app (dopo avere concesso le autorizzazioni necessarie) o dallo strumento ADB.
CONTATTI_SISTEMA Tutte:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app fornisce agli utenti una UI per gestire i propri contatti, ad esempio visualizzare, condividere, aggiungere, rimuovere o cercare un contatto. L'app aggiorna il provider Contatti quando l'utente aggiorna i propri contatti dall'app. Gli utenti possono anche chiamare, inviare email o messaggi ai propri contatti dall'app.
SYSTEM_SPEECH_RECOGNIZER Tutte:
  • 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 stream con microfono in diretta 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'app.
SYSTEM_WIFI_COEX_MANAGER Tutte:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app dispone di un servizio che imposta in modo dinamico un elenco di canali Wi-Fi che il dispositivo dovrebbe evitare di utilizzare a causa delle interferenze della rete cellulare.
BENESSERE_SISTEMA Tutte:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app deve fornire agli utenti funzionalità per ridurre le distrazioni e fornire agli utenti statistiche sulla modalità di utilizzo del dispositivo (ad esempio, il tempo di utilizzo settimanale).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Tutte:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app deve mostrare notifiche in evidenza per gli utenti sui dispositivi TV. L'app deve anche mostrare le notifiche attive correnti quando viene inviato l'intent android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL (da SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Tutte:
  • 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 vicinanze. Deve avere una UI in cui l'utente può confermare che un determinato dispositivo periferico deve essere associato e gestito da un'app. Dopo la conferma da parte dell'utente, 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 Tutte:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app ha 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 descritti nella sezione CDD di Android 2.2.3. Software sotto l'intestazione [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER Tutte:
  • L'app è un'app di sistema .
  • L'app dispone di un servizio, gestito da android.permission.ACTIVITY_RECOGNITION, che può eseguire il riconoscimento delle attività (ad esempio, corsa o ciclismo).
UI_SISTEMA Tutte:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app ha un'interfaccia che consente agli utenti di interagire con i loro telefoni. Ad esempio, schermata principale dello smartphone, navigazione, app recenti, impostazioni rapide, barra delle notifiche, schermata di blocco e controllo del volume.
SYSTEM_TELEVISION_REMOTE_SERVICE Tutte:
  • L'app è un'app di sistema su Android TV.
  • Solo gli OEM possono concedere questo ruolo all'app.
  • L'app include un servizio in grado di comunicare con il dispositivo HID del telecomando della TV (ad esempio tramite BLE), inserire eventi (ad esempio i clic sui pulsanti) e inviare altri dati (ad esempio lo stream audio da un microfono integrato nel telecomando) alla piattaforma.
INTELLIGENCE_UI_SISTEMA Tutte:
  • Essendo un servizio preinstallato che fornisce, tramite API framework (API pubbliche o di sistema), un processore intelligente on-device per le funzionalità dell'interfaccia utente di sistema (ad esempio, prevedendo e mostrando le app successive agli utenti).
  • Il servizio deve soddisfare tutti i requisiti descritti nella sezione CDD di Android 9.8.6 Acquisizione di contenuti.
  • Non può avere l'autorizzazione android.permission.INTERNET. Deve invece accedere a internet attraverso 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 per internet. Ogni associazione consentita deve essere impostata in modo esplicito tramite la configurazione <allow-association> nella configurazione di sistema.
  • Non può condividere dati con le app a meno che non venga eseguita un'azione diretta dell'utente (ad esempio, l'utente prema esplicitamente un pulsante ogni volta che i dati vengono condivisi).
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE Tutte:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE, ad eccezione del fatto che il servizio preinstallato fornisce un processore intelligente on-device per l'audio ambientale (ad esempio, il riconoscimento dei brani in riproduzione vicino al dispositivo).
INTELLIGENCE_AUDIO_SISTEMA Tutte:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE, ad eccezione del fatto che il servizio preinstallato fornisce un processore intelligente on-device per l'audio (ad esempio per sottotitoli di video, podcast, telefonate, videochiamate e messaggi audio).
NOTIFICA_SISTEMA_INTELLIGENCE Tutte:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE, tranne per il fatto che il servizio preinstallato fornisce un processore intelligente on-device per le notifiche (ad esempio suggerendo risposte e azioni per le notifiche dei messaggi).
SYSTEM_TEXT_INTELLIGENCE Tutte:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE, ad eccezione del fatto che il servizio preinstallato fornisce un processore intelligente on-device per il testo (ad esempio fornisce la traduzione dal vivo o la compilazione automatica).
INTELLIGENZA_VISUALE_SISTEMA Tutte:
  • Identico alle condizioni per SYSTEM_UI_INTELLIGENCE, tranne per il fatto che il servizio preinstallato fornisce un processore intelligente on-device per le funzionalità visive che implicano l'analisi dei dati della videocamera. Ad esempio, mantenere attivo lo schermo del telefono mentre l'utente lo guarda o determinare l'orientamento ideale dello schermo in base all'orientamento del volto dell'utente con la fotocamera anteriore del dispositivo.
COMPANION_DEVICE_APP_STREAMING Tutte:
  • 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 connessi in modo che possano scambiare dati. Per stabilire questi canali di comunicazione, l'app e i dispositivi connessi devono autenticarsi a vicenda (ad esempio, dimostrando la loro conoscenza delle chiavi condivise). I canali di comunicazione devono disporre di protezione crittografica.
  • L'app può inviare notifiche dal dispositivo locale a quello connesso per consentire all'utente di intervenire sulle notifiche sul dispositivo connesso.
  • Essere in grado di trasmettere in streaming i metadati necessari per lo streaming di app sul dispositivo connesso, come l'elenco di app disponibili sul dispositivo locale.
  • Essere in grado di trasmettere in streaming app dal dispositivo locale al dispositivo connesso dopo che l'utente ha indicato la sua preferenza di farlo con il consenso esplicito (sullo smartphone o sul dispositivo connesso).
  • Essere in grado di riprodurre (injectre) gli eventi che si verificano su un'app riprodotta in streaming su un dispositivo connesso di nuovo sul dispositivo locale. Ad esempio, la riproduzione di un evento touch sul tablet alle stesse coordinate sullo smartphone.
  • L'app può sostituire lo stream del microfono di un dispositivo locale con lo stream del microfono di un dispositivo connesso mentre un'app riprodotta in streaming utilizza il microfono.
  • L'app acquisisce l'audio dal dispositivo e lo trasmette in streaming al dispositivo connesso.
  • Deve bloccare lo stream della videocamera del dispositivo locale mentre un'app in streaming utilizza la videocamera.
  • Deve verificare l'integrità della build del sistema operativo del dispositivo connesso (ad esempio utilizzando l'attestazione del dispositivo come in VerifiedBootState).
  • Trasmetti in streaming su entrambi i dispositivi solo le app in cui è presente un solo account corrispondente nel registro degli account sul dispositivo (ad esempio AccountManager su Android). In caso contrario, lo streaming deve essere autorizzato con un codice monouso visualizzato sul dispositivo di origine e inserito sul dispositivo connesso. Tieni presente che nel caso di dispositivi che supportano più utenti (e non più account) con lo stesso isolamento dei dati affidabile come in Android multiutente, un utente viene conteggiato come un dispositivo.
  • Deve 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 nella portata 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, touchscreen e mouse non attivi) per 5 minuti. Le app di streaming video sono esenti da questo requisito.
  • Se il dispositivo di origine utilizza il fattore di conoscenza della schermata di blocco (LSKF), quando lo schermo è bloccato, l'app non deve trasmettere in streaming app a un dispositivo connesso a meno che quest'ultimo non abbia una schermata di blocco e sia sbloccato.
  • Se il dispositivo è gestito da un amministratore, l'app deve rispettare i criteri configurati dall'amministratore relativi all'attivazione o alla disattivazione dello streaming di app verso i dispositivi nelle vicinanze (ad esempio, utilizzando le impostazioni di DevicePolicyManager in Android).
  • È necessario garantire che il display remoto e tutte le origini degli eventi di input remoto appartengano allo stesso dispositivo logico (ad esempio, un display remoto e una tastiera connessa) dal punto di vista dell'utente e gli eventi vengono indirizzati 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 sullo smartphone è impostato un blocco schermo.
  • Deve mostrare un invito sul dispositivo di origine quando lo streaming è in corso su un altro dispositivo, ad esempio un'icona nella barra di stato o una notifica persistente.
DEVICE_POLICY_MANAGEMENT Tutte:
  • Solo gli OEM possono concedere questo ruolo all'app. Le app non possono richiedere questo ruolo perché è destinato a essere concesso subito al nome del pacchetto definito dall'OEM al momento della spedizione del dispositivo.
  • L'app deve essere in grado di eseguire il provisioning di un profilo gestito (proprietario del profilo) o di un dispositivo gestito (proprietario del dispositivo), incluso il download e l'installazione del client Device Policy appropriato per essere il proprietario del dispositivo/profilo, se necessario.
  • L'app può aggiornare in modo dinamico le risorse come stringhe o drawable utilizzati per la gestione dei criteri dei dispositivi.
  • L'app può essere un'app di sistema preinstallata o essere scaricata e installata prima del provisioning.
  • Per le richieste di provisioning del proprietario del profilo, quando l'app del titolare del ruolo viene installata su un determinato utente Android, deve essere installata su tutti i profili applicabili per l'utente in questione.
SYSTEM_APP_PROTECTION_SERVICE Tutte:
  • L'app è un'app di sistema .
  • L'unico scopo dell'app è rilevare le 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 descritti nella sezione CDD di Android 9.8.6. Dati ambientali e a livello di sistema operativo.
  • Non deve dichiarare l'autorizzazione normale android.permission.INTERNET. Deve invece accedere a internet attraverso API ben definite in un progetto open source.
  • Non deve essere vincolata alle app, ad eccezione delle seguenti app di sistema: Controller autorizzazioni e componenti che forniscono API per telefonia e internet. Ogni associazione consentita deve essere impostata in modo esplicito tramite la configurazione <allow-association> nella configurazione di sistema.
  • Non deve condividere dati con app a meno che non vi sia un'azione diretta dell'utente (ad esempio, l'utente prema esplicitamente un pulsante ogni volta che i dati vengono condivisi).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER Tutte:
  • L'app è un'app di sistema .
  • Solo gli OEM possono concedere questo ruolo all'app.
  • Devi trasferire i dati del calendario dallo smartphone iOS o Android dell'utente al dispositivo Android Auto. Il dispositivo Android Auto deve archiviare questi dati di calendario nel fornitore di calendari.
  • L'app deve fornire un componente UI sullo smartphone che l'utente possa utilizzare per attivare la sincronizzazione del calendario e selezionare i calendari da sincronizzare. L'app deve fornire un componente UI sullo smartphone che l'utente possa utilizzare per disattivare la sincronizzazione del calendario.
  • Deve funzionare senza una connessione a internet. Ad esempio, tramite connessioni dirette cablate o wireless.
NAVIGAZIONE_AUTOMATICA Tutte:
  • L'app ha un'attività, che le app possono richiamare tramite richieste di intent implicite, che mostra la posizione attuale dell'utente e l'ambiente circostante.
  • L'app ha un'attività che le app possono richiamare tramite richieste di intent implicite, che consente all'utente di raggiungere una posizione geografica specificata.
  • Ha un'attività che viene avviata sul quadro strumenti quando l'app è in navigazione. L'attività deve mostrare la posizione attuale dell'utente, l'ambiente circostante e consentire all'utente di raggiungere una specifica geolocalizzazione.
COMPANION_DEVICE_COMPUTER Tutte:
  • 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 dallo smartphone su un computer connesso.
SYSTEM_SETTINGS_INTELLIGENCE Almeno uno dei seguenti:
  • 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.
NOTE Tutte:
OCCHIALI_DI_COMPANION_DEVICE_GLASSES L'app può effettuare richieste di associazione a un dispositivo per gli occhiali e di gestirlo (utilizzando l'API fornita dalla classe CompanionDeviceManager). Dopo aver collegato il dispositivo occhiali e l'app tramite la UI fornita da CDM, gli utenti possono gestire il proprio dispositivo concedendogli l'accesso ai contatti e l'autorizzazione per gestire notifiche e telefonate.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Tutte:
  • 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 connessi in modo che i dispositivi possano scambiare dati. Per stabilire questi canali di comunicazione, l'app e i dispositivi connessi devono autenticarsi a vicenda (ad esempio, dimostrando la loro conoscenza delle chiavi condivise). I canali di comunicazione devono disporre di protezione crittografica.
  • L'app può inviare notifiche dal dispositivo locale a quello connesso per consentire all'utente di intervenire sulle notifiche sul dispositivo connesso.
  • Essere in grado di trasmettere in streaming i metadati necessari per lo streaming di app sul dispositivo connesso, come l'elenco di app disponibili sul dispositivo locale.
  • Essere in grado di trasmettere in streaming app dal dispositivo locale al dispositivo connesso dopo che l'utente ha indicato la sua preferenza di farlo con il consenso esplicito (sullo smartphone o sul dispositivo connesso).
  • Essere in grado di riprodurre (injectre) gli eventi che si verificano su un'app riprodotta in streaming su un dispositivo connesso di nuovo sul dispositivo locale. Ad esempio, la riproduzione di un evento touch sul tablet alle stesse coordinate dello smartphone o la riproduzione di un evento di input che si è verificato sul dispositivo occhiali con la stessa semantica di input dello smartphone.
  • L'app può sostituire lo stream del microfono di un dispositivo locale con lo stream del microfono di un dispositivo connesso mentre un'app riprodotta in streaming utilizza il microfono.
  • L'app acquisisce l'audio dal dispositivo e lo trasmette in streaming al dispositivo connesso.
  • Deve verificare l'integrità della build del sistema operativo del dispositivo connesso (ad esempio, utilizzando l'attestazione del dispositivo come in VerifiedBootState).
  • Trasmetti in streaming su entrambi i dispositivi solo le app in cui è presente un solo account corrispondente nel registro degli account sul dispositivo (ad esempio AccountManager su Android). In caso contrario, lo streaming deve essere autorizzato con un codice monouso visualizzato sul dispositivo di origine e inserito sul dispositivo connesso. Tieni presente che nel caso di dispositivi che supportano più utenti (e non più account) con lo stesso isolamento dei dati garantito come in Android multiutente, un utente viene conteggiato come un dispositivo.
  • Deve 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 il fattore di conoscenza della schermata di blocco (LSKF), quando lo schermo è bloccato, l'app non deve trasmettere in streaming app a un dispositivo connesso a meno che quest'ultimo non abbia una schermata di blocco e sia sbloccato.
  • Se il dispositivo è gestito da un amministratore, l'app deve rispettare i criteri configurati dall'amministratore relativi all'attivazione o alla disattivazione dello streaming verso i dispositivi nelle vicinanze (ad esempio, utilizzando le impostazioni di DevicePolicyManager in Android).
  • È necessario garantire che il display remoto e tutte le origini degli eventi di input remoto appartengano allo stesso dispositivo logico (ad esempio, un display remoto e una tastiera connessa) dal punto di vista dell'utente e gli eventi vengono indirizzati 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 sullo smartphone è impostato un blocco schermo.
  • Deve mostrare un invito sul dispositivo di origine quando lo streaming è in corso su un altro dispositivo, ad esempio un'icona nella barra di stato o una notifica persistente.