ASSISTANT |
Almeno uno dei seguenti:
- L'app ha 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 dell'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, che può eseguire il riconoscimento vocale e ospitare sessioni di interazione vocale attive.
Inoltre, l'app ha un flag esplicito che indica che il servizio è in grado di gestire l'azione di assistenza.
|
BROWSER |
Tutti i seguenti:
- L'app ha un'attività che le app possono richiamare tramite richieste di intent impliciti, che visualizza una pagina web corrispondente a un indirizzo
http://.
- L'app deve gestire la navigazione tra i link. In altre parole, 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 i contenuti corrispondenti al link selezionato senza ulteriori interventi da parte dell'utente.
- L'app deve essere in grado di fornire alle pagine web le informazioni di geolocalizzazione correnti del dispositivo quando vengono richieste e l'utente approva la richiesta.
|
DIALER |
Tutti i seguenti:
- L'app ha un'attività che le app possono richiamare tramite richieste di intent impliciti, 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 la chiamata.
- L'app fornisce all'utente un mezzo per avviare chiamate e visualizzare una cronologia delle chiamate sul proprio dispositivo.
|
SMS |
Tutti i seguenti:
- 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 impliciti, che possono inviare un messaggio a un numero di telefono.
- L'app ha un servizio protetto dall'autorizzazione
android.permission.SEND_RESPOND_VIA_MESSAGE e
richiamabile da intent impliciti, che possono recapitare 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 controllato dall'autorizzazione
android.permission.BROADCAST_SMS e uno controllato dall'autorizzazione android.permission.BROADCAST_WAP_PUSH, che possono ascoltare rispettivamente gli SMS e gli MMS basati su testo inviati al dispositivo. L'app è quindi responsabile della scrittura dei messaggi nel provider di SMS e della notifica agli utenti.
|
EMERGENCY |
Tutti i seguenti:
- L'app è un'app di sistema.
- L'app ha un'attività che presenta le informazioni d'emergenza dell'utente.
Chiunque può accedere a questa schermata tramite il pulsante Emergenza nell'attività
Tastierino per le chiamate di emergenza.
|
HOME |
L'app ha un'attività che può avviare la schermata Home quando l'utente preme il pulsante Home. La schermata Home deve 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 ha un servizio controllato dall'autorizzazione android.permission.BIND_CALL_REDIRECTION_SERVICE, a cui il framework di telecomunicazioni può associarsi. Il servizio riceve il numero di telefono in uscita dal framework di telecomunicazioni ed esegue una delle seguenti azioni:
- Consenti di effettuare la chiamata così com'è.
- Modificare il numero in uscita in modo che venga instradato tramite un numero proxy.
- Annullare la chiamata.
|
CALL_SCREENING |
L'app ha un servizio controllato dall'autorizzazione android.permission.BIND_SCREENING_SERVICE,
che svolge due funzioni:
- Blocco e filtro delle chiamate:il servizio può scegliere quali chiamate devono essere inviate all'app Telefono (e potenzialmente squillare, in base alla modalità Non disturbare o al volume) e quali devono essere inviate silenziosamente alla segreteria.
- Identificazione delle chiamate: il servizio può identificare e visualizzare informazioni su una chiamata tramite un'interfaccia utente.
|
SUPERVISION |
Tutti i seguenti:
- L'app è un'app di sistema o un servizio preinstallato.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'unico scopo dell'app è consentire a un genitore o tutore legale di un utente di gestire il dispositivo.
- L'app deve fornire un componente UI sul dispositivo che l'utente autorizzato può utilizzare per disattivare il ruolo di supervisione.
|
SYSTEM_GALLERY |
Tutti i seguenti:
- 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 i propri video e le proprie immagini.
|
SYSTEM_AUTOMOTIVE_CLUSTER |
Tutti i seguenti:
- 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 dell'auto (in genere adiacente al volante) per consentire agli utenti di rispondere alle chiamate e accedere agli elenchi contatti e ai registri chiamate.
|
COMPANION_DEVICE_WATCH |
L'app può effettuare richieste per essere associata a uno smartwatch e per gestirlo
(utilizzando l'API fornita dalla
classe CompanionDeviceManager). Quando lo smartwatch
e l'app sono connessi tramite la UI fornita dall'app, gli utenti possono
gestire lo smartwatch dall'app, ad esempio sincronizzare i contatti e il calendario
e gestire le notifiche e le chiamate.
|
SYSTEM_AUTOMOTIVE_PROJECTION |
Tutti i seguenti:
- 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 e controllare le app sugli smartphone Android, tra cui musica, navigazione, telefonate e ricerca, utilizzando i meccanismi di input del veicolo, tra cui il tocco, i controlli sul volante e i comandi vocali.
|
SYSTEM_SHELL |
Tutti i seguenti:
- 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, la visualizzazione dei contenuti di una cartella o l'avvio di app. I comandi della shell possono essere eseguiti in modo programmatico dalle app (se sono state concesse le autorizzazioni necessarie) o dallo strumento ADB.
|
SYSTEM_CONTACTS |
Tutti i seguenti:
- 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 di contatti quando l'utente aggiorna i propri contatti dall'app. Gli utenti possono anche chiamare, inviare email o inviare messaggi ai propri contatti dall'app.
|
SYSTEM_SPEECH_RECOGNIZER |
Tutti i seguenti:
- 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 del microfono in tempo reale da un'altra app per il riconoscimento vocale, attribuisce correttamente l'utilizzo del microfono all'app di chiamate e aggiorna di conseguenza le statistiche di funzionamento dell'app.
|
SYSTEM_WIFI_COEX_MANAGER |
Tutti i seguenti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app ha un servizio che imposta dinamicamente un elenco di canali Wi-Fi che il dispositivo deve evitare di utilizzare a causa di interferenze con la rete mobile.
|
SYSTEM_WELLBEING |
Tutti i seguenti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app deve offrire agli utenti la possibilità di ridurre le distrazioni e fornire loro statistiche su come utilizzano il dispositivo (ad esempio, il tempo di utilizzo per settimana).
|
SYSTEM_TELEVISION_NOTIFICATION_HANDLER |
Tutti i seguenti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app deve mostrare notifiche in evidenza agli 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 |
Tutti i seguenti:
- 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 un'interfaccia utente in cui l'utente può confermare che un determinato dispositivo periferico deve essere associato a un'app e gestito da quest'ultima. Quando l'utente conferma, l'app di gestione concede all'app associata l'autorizzazione per accedere al dispositivo periferico (ad esempio, il nome, l'indirizzo, la classe e lo stato di accoppiamento) e può avviare il processo di accoppiamento.
|
SYSTEM_DOCUMENT_MANAGER |
Tutti i seguenti:
- 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 crearne di nuovi sul dispositivo.
- L'app deve soddisfare tutti i requisiti descritti nella sezione 2.2.3 del CDD Android. Software
all'intestazione
[3.2.3.1/H-0-1].
|
SYSTEM_ACTIVITY_RECOGNIZER |
Tutti i seguenti:
|
SYSTEM_UI |
Tutti i seguenti:
- 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 propri smartphone. Ad esempio, la schermata principale dello smartphone, la navigazione, le app recenti, le Impostazioni rapide, la barra delle notifiche, la schermata di blocco, il controllo del volume.
|
SYSTEM_TELEVISION_REMOTE_SERVICE |
Tutti i seguenti:
- 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 TV (ad esempio tramite BLE), inserire eventi (ad esempio clic sui pulsanti) e inviare altri dati (ad esempio stream audio da un microfono integrato nel telecomando) alla piattaforma.
|
SYSTEM_UI_INTELLIGENCE |
Tutti i seguenti:
- Essere un servizio preinstallato che fornisce, tramite API del framework (API pubbliche o di sistema), un processore intelligente on-device per le funzionalità della UI di sistema (ad esempio, la previsione e la visualizzazione delle app successive per gli utenti).
- Il servizio deve soddisfare tutti i requisiti descritti nella sezione 9.8.6 Content Capture del CDD di Android.
- Il servizio non può avere l'autorizzazione
android.permission.INTERNET. Deve invece accedere a internet tramite API ben definite in un progetto open source.
- Il servizio non può essere associato alle app, ad eccezione delle seguenti app di sistema:
Bluetooth, Contatti, Contenuti multimediali, Telefonia, SystemUI e componenti
che forniscono API Internet. Ogni associazione consentita deve essere configurata esplicitamente tramite la configurazione
<allow-association> nella configurazione di sistema.
- Il servizio non può condividere dati con le app, a meno che non venga eseguita un'azione diretta dell'utente (ad esempio, l'utente preme esplicitamente un pulsante ogni volta che i dati vengono condivisi).
|
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE |
Tutti i seguenti:
- Identiche alle condizioni per
SYSTEM_UI_INTELLIGENCE,
con la differenza che il servizio preinstallato
fornisce un processore intelligente on-device per l'audio ambientale
(ad esempio, il riconoscimento dei brani riprodotti vicino al dispositivo).
|
SYSTEM_AUDIO_INTELLIGENCE |
Tutti i seguenti:
- Identiche alle condizioni per
SYSTEM_UI_INTELLIGENCE,
con la differenza che il servizio
preinstallato fornisce un processore intelligente on-device per l'audio (ad esempio,
sottotitoli per video, podcast, telefonate, videochiamate e
messaggi audio).
|
SYSTEM_NOTIFICATION_INTELLIGENCE |
Tutti i seguenti:
- Identiche alle condizioni per
SYSTEM_UI_INTELLIGENCE,
con la differenza 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 |
Tutti i seguenti:
- Identiche alle condizioni per
SYSTEM_UI_INTELLIGENCE,
con la differenza che il servizio preinstallato
fornisce un processore intelligente on-device per il testo (ad esempio, fornendo la traduzione istantanea o la compilazione automatica).
|
SYSTEM_VISUAL_INTELLIGENCE |
Tutti i seguenti:
- Identiche alle condizioni per
SYSTEM_UI_INTELLIGENCE,
con la differenza che il servizio preinstallato
fornisce un processore intelligente on-device per le funzionalità visive
che prevede l'analisi dei dati della fotocamera. Ad esempio, mantenere lo schermo dello smartphone attivo mentre l'utente lo sta guardando o determinare l'orientamento ideale dello schermo in base all'orientamento del volto dell'utente dalla fotocamera anteriore del dispositivo.
|
COMPANION_DEVICE_APP_STREAMING |
Tutti i seguenti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- Casi d'uso consentiti:
- Streaming, trasmissione o mirroring di app che consentono lo streaming, la trasmissione o il mirroring da un dispositivo Android, ad esempio uno smartphone o un tablet, a un computer desktop o laptop.
- Quando stabilisci la connessione iniziale dal dispositivo A al dispositivo B:
- L'accoppiamento DEVE essere autorizzato da un codice una tantum visualizzato sul dispositivo di origine (A) e inserito sul dispositivo connesso (B).
In alternativa, se entrambi i dispositivi hanno almeno un account corrispondente
in Android AccountManager, l'utente PUÒ confermare l'accoppiamento
inserendo la password dell'account sul dispositivo connesso (B).
- Entrambi i dispositivi devono essere vicini
1 l'uno all'altro durante
l'accoppiamento.
- Entrambi i dispositivi devono essere vicini
1 l'uno all'altro durante
lo streaming.
- L'app può creare e gestire canali di comunicazione con i dispositivi connessi in modo che questi possano scambiare dati. L'app e i dispositivi connessi
DEVONO autenticarsi a vicenda (ad esempio, dimostrando di conoscere le chiavi condivise) per stabilire questi canali di
comunicazione. I canali di comunicazione DEVONO avere una protezione con crittografia end-to-end.
- L'app può inviare notifiche dal dispositivo di origine (A) al dispositivo connesso (B) per consentire all'utente di passare all'azione sulle notifiche sul dispositivo connesso (B).
- Essere in grado di trasmettere in streaming i metadati necessari per lo streaming di app al
dispositivo connesso (B), ad esempio l'elenco delle app disponibili sul
dispositivo di origine (A).
- Essere in grado di trasmettere in streaming le app dal dispositivo di origine (A) al dispositivo connesso (B) dopo che l'utente ha indicato la sua preferenza in tal senso con il consenso esplicito (sul dispositivo di origine (A) o sul dispositivo connesso (B)).
- Poter riprodurre (inserire) gli eventi che si verificano su un'app
in streaming sul dispositivo connesso (B) sul dispositivo di origine (A). Ad esempio, la riproduzione di un evento touch sul dispositivo connesso (B) alle stesse coordinate del dispositivo di origine (A) o la riproduzione di un evento di input che si è verificato sul dispositivo connesso (B) con la stessa semantica di input del dispositivo di origine (A).
- L'app può sostituire lo stream del microfono del dispositivo di origine con lo stream del microfono di un dispositivo connesso mentre un'app di streaming utilizza il microfono.
- L'app acquisisce l'audio dal dispositivo di origine (A) e lo trasmette in streaming al dispositivo connesso (B).
- È CONSIGLIATO bloccare l'accesso alle app delle impostazioni e agli store dal dispositivo connesso (B).
- A partire da Android 16, gli screenshot
e la lettura dello schermo di contenuti sensibili, come
finestre e superfici sicure, DEVONO essere impediti sul dispositivo
connesso (B).
- 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 solo le app di streaming per cui esiste un solo account corrispondente nel registro degli account sul dispositivo (ad esempio, la classe
AccountManager su Android) su entrambi i dispositivi. In caso contrario, lo streaming DEVE essere autorizzato con un codice monouso mostrato sul dispositivo di origine (A) e inserito sul dispositivo connesso (B).
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 dal dispositivo connesso (B)
immediatamente se l'autenticazione dell'account sul dispositivo connesso
(B) scade o viene revocata.
- DEVE interrompere lo streaming e disconnettersi dal dispositivo connesso (B)
al timeout di inattività del dispositivo connesso (B) su cui sono visibili
i contenuti del display. PUÒ tenere acceso lo schermo del dispositivo connesso in casi
come WakeLock, che tengono acceso lo schermo del dispositivo Android. Deve essere presente un timeout di inattività. Se il dispositivo connesso (B) non ha un timeout di inattività, DEVE essere utilizzato un timeout di inattività di massimo 5 minuti.
- Se il dispositivo di origine (A) utilizza il fattore di conoscenza della schermata di blocco (LSKF), quando
lo schermo è bloccato, l'app NON DEVE riprodurre in streaming le app su un dispositivo
connesso (B), a meno che il dispositivo connesso (B) non abbia una schermata di blocco e non sia
sbloccato.
- Se il dispositivo di origine (A) è gestito da un amministratore, l'app DEVE rispettare le policy impostate dall'amministratore in merito all'attivazione o alla disattivazione dello streaming su dispositivi nelle vicinanze (ad esempio, utilizzando le impostazioni di
DevicePolicyManager in Android).
- DEVE garantire che i display remoti e tutte le origini degli eventi di input remoti appartengano allo stesso dispositivo logico (ad esempio, un display remoto e una tastiera connessa) dal punto di vista dell'utente e che gli eventi vengano indirizzati di conseguenza.
- L'utente DEVE essere in grado di terminare lo streaming dal dispositivo di origine (A), ad esempio utilizzando un pulsante in una notifica persistente. Questo comportamento è controllato dalla schermata di blocco, se sul dispositivo di origine (A) è impostato un blocco schermo. DEVE mostrare questo affordance persistente sul dispositivo di origine (A) che è sempre visibile e above the fold.
- DEVE mostrare un affordance sul dispositivo di origine (A) quando lo streaming è
in corso su un altro dispositivo, ad esempio un'icona nella barra di stato o una
notifica persistente.
|
DEVICE_POLICY_MANAGEMENT |
Tutti i seguenti:
- Solo gli OEM possono concedere questo ruolo all'app. Le app non possono richiedere questo ruolo, in quanto è 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 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 policy per i dispositivi appropriato per essere il proprietario del dispositivo/profilo, se necessario.
- L'app può facoltativamente aggiornare in modo dinamico le risorse, come stringhe e drawable, utilizzate per la gestione delle policy per i dispositivi.
- L'app può essere un'app di sistema preinstallata o essere scaricata e installata prima del provisioning.
- Per i casi di provisioning del proprietario del profilo, quando l'app titolare del ruolo è installata su un determinato utente Android, deve essere installata su tutti i profili applicabili per quell'utente.
|
SYSTEM_APP_PROTECTION_SERVICE |
Tutti i seguenti:
- L'app è un'app di sistema.
- L'unico scopo dell'app è rilevare app potenzialmente dannose
(app che potrebbero mettere a rischio gli utenti, i dati utente o i dispositivi, ad esempio
trojan, phishing e spyware) o
software
mobile indesiderato.
- L'app deve soddisfare tutti i requisiti descritti nella sezione 9.8.6
del CDD di Android.
Dati ambientali e a livello di sistema operativo.
- L'app non deve dichiarare l'autorizzazione normale
android.permission.INTERNET. Deve invece accedere a internet tramite API ben definite in un progetto open source.
- L'app non deve essere associata ad altre app, ad eccezione delle seguenti app di sistema:
Permission Controller e componenti che forniscono API di telefonia e internet. Ogni associazione consentita deve essere configurata esplicitamente tramite la configurazione
<allow-association> nella configurazione di sistema.
- L'app non deve condividere dati con altre app, a meno che non sia presente 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 |
Tutti i seguenti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app deve trasferire i dati del calendario dallo smartphone iOS o Android dell'utente al dispositivo Android Auto. Il dispositivo Android Auto deve archiviare
questi dati del calendario nel
provider di calendario.
- L'app deve fornire un componente UI sullo smartphone che l'utente può 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 può utilizzare per disattivare la sincronizzazione del calendario.
- L'app deve funzionare senza una connessione a internet. Ad esempio,
utilizzando connessioni dirette con cavo o wireless.
|
AUTOMOTIVE_NAVIGATION |
Tutti i seguenti:
- L'app ha un'attività che le app possono richiamare tramite richieste di intent impliciti, che mostra la posizione attuale dell'utente e i dintorni.
- L'app ha un'attività che le app possono richiamare tramite richieste di intent impliciti, che consentono all'utente di raggiungere una posizione geografica specificata.
- L'app ha un'attività che viene avviata sul quadro strumenti quando l'app ha lo stato attivo per la navigazione.
L'attività deve mostrare la posizione attuale dell'utente, i dintorni e consentire la navigazione verso una posizione geografica specificata.
|
COMPANION_DEVICE_COMPUTER |
Tutti i seguenti:
- 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 dei seguenti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- Dispone di un servizio che fornisce funzionalità intelligenti per l'app Impostazioni, come suggerimenti e ricerca.
|
NOTES |
Tutti i seguenti:
|
COMPANION_DEVICE_GLASSES |
L'app può effettuare richieste per essere associata a un dispositivo occhiali e per gestirlo (utilizzando l'API fornita dalla classe CompanionDeviceManager). Quando gli occhiali e l'app sono connessi tramite l'UI fornita da CDM, gli utenti possono gestire gli occhiali concedendo l'accesso ai contatti e l'autorizzazione a gestire le notifiche e le chiamate.
|
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING |
Tutti i seguenti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- Casi d'uso consentiti:
- Streaming di app da un dispositivo Android, ad esempio uno smartphone o un tablet, a un veicolo.
- Streaming di app da un dispositivo Android, ad esempio uno smartphone o un tablet, a un dispositivo XR.
- Quando stabilisci la connessione iniziale dal dispositivo A al dispositivo B:
- L'accoppiamento DEVE essere autorizzato da un codice una tantum visualizzato sul dispositivo di origine (A) e inserito sul dispositivo connesso (B).
In alternativa, se entrambi i dispositivi hanno almeno un account corrispondente
in Android AccountManager, l'utente PUÒ confermare l'accoppiamento
inserendo la password dell'account sul dispositivo connesso (B).
- Entrambi i dispositivi devono essere vicini
1 l'uno all'altro durante
l'accoppiamento.
- Entrambi i dispositivi devono essere vicini
1 l'uno all'altro durante
lo streaming.
- L'app può creare e gestire canali di comunicazione con i dispositivi connessi in modo che questi possano scambiare dati. L'app e i dispositivi connessi
DEVONO autenticarsi a vicenda (ad esempio, dimostrando di conoscere le chiavi condivise) per stabilire questi canali di
comunicazione. I canali di comunicazione DEVONO avere una protezione con crittografia end-to-end.
- L'app può inviare notifiche dal dispositivo di origine (A) al dispositivo connesso (B) per consentire all'utente di passare all'azione sulle notifiche sul dispositivo connesso (B).
- Essere in grado di trasmettere in streaming i metadati necessari per lo streaming di app al
dispositivo connesso (B), ad esempio l'elenco delle app disponibili sul
dispositivo di origine (A).
- Essere in grado di trasmettere in streaming le app dal dispositivo di origine (A) al dispositivo connesso (B) dopo che l'utente ha indicato la sua preferenza in tal senso con il consenso esplicito (sul dispositivo di origine (A) o sul dispositivo connesso (B)).
- Poter riprodurre (inserire) gli eventi che si verificano su un'app
in streaming sul dispositivo connesso (B) sul dispositivo di origine (A). Ad esempio, la riproduzione di un evento touch sul dispositivo connesso (B) alle stesse coordinate del dispositivo di origine (A) o la riproduzione di un evento di input che si è verificato sul dispositivo connesso (B) con la stessa semantica di input del dispositivo di origine (A).
- L'app può sostituire lo stream del microfono del dispositivo di origine con lo stream del microfono di un dispositivo connesso mentre un'app di streaming utilizza il microfono.
- L'app acquisisce l'audio dal dispositivo di origine (A) e lo trasmette in streaming al dispositivo connesso (B).
- È CONSIGLIATO bloccare l'accesso alle app delle impostazioni e agli store dal dispositivo connesso (B).
- A partire da Android 16, sul dispositivo connesso (B) DEVE essere impedito lo screenshot e la lettura dello schermo di contenuti sensibili, come
finestre e superfici sicure.
- 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 solo le app di streaming per cui esiste un solo account corrispondente nel registro degli account sul dispositivo (ad esempio, la classe
AccountManager su Android) su entrambi i dispositivi. In caso contrario, lo streaming DEVE essere autorizzato con un codice monouso mostrato sul dispositivo di origine (A) e inserito sul dispositivo connesso (B).
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 dal dispositivo connesso (B)
immediatamente se l'autenticazione dell'account sul dispositivo connesso
(B) scade o viene revocata.
- DEVE interrompere lo streaming e disconnettersi dal dispositivo connesso (B)
al timeout di inattività del dispositivo connesso (B) su cui sono visibili
i contenuti del display. PUÒ tenere acceso lo schermo del dispositivo connesso in casi
come WakeLock, che tengono acceso lo schermo del dispositivo Android. Deve essere presente un timeout di inattività. Se il dispositivo connesso (B) non ha un timeout di inattività, DEVE essere utilizzato un timeout di inattività di massimo 5 minuti.
- Se il dispositivo di origine (A) utilizza il fattore di conoscenza della schermata di blocco (LSKF), quando
lo schermo è bloccato, l'app NON DEVE riprodurre in streaming le app su un dispositivo
connesso (B), a meno che il dispositivo connesso (B) non abbia una schermata di blocco e non sia
sbloccato.
- Se il dispositivo di origine (A) è gestito da un amministratore, l'app DEVE rispettare le policy impostate dall'amministratore in merito all'attivazione o alla disattivazione dello streaming su dispositivi nelle vicinanze (ad esempio, utilizzando le impostazioni
DevicePolicyManager in Android).
- DEVE garantire che i display remoti e tutte le origini degli eventi di input remoti appartengano allo stesso dispositivo logico (ad esempio, un display remoto e una tastiera connessa) dal punto di vista dell'utente e che gli eventi vengano indirizzati di conseguenza.
- L'utente DEVE essere in grado di terminare lo streaming dal dispositivo di origine (A), ad esempio utilizzando un pulsante in una notifica persistente. Questo comportamento è controllato dalla schermata di blocco, se sul dispositivo di origine (A) è impostato un blocco schermo. DEVE mostrare questo affordance persistente sul dispositivo di origine (A) che è sempre visibile e above the fold.
- DEVE mostrare un affordance sul dispositivo di origine (A) quando lo streaming è
in corso su un altro dispositivo, ad esempio un'icona nella barra di stato o una
notifica persistente.
|
WALLET |
Uno tra:
- L'app ha un servizio APDU NFC che registra staticamente almeno un AID nella categoria PAYMENT.
- L'app implementa un'istanza di
QuickAccessWalletService.
|