ASSISTANT |
Almeno uno dei seguenti:
- L'app ha un'attività che esegue azioni di assistenza, date le
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 ha 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:
- 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. ovvero, 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 dell'utente.
- L'app deve essere in grado di fornire le informazioni sulla geolocalizzazione attuale del dispositivo alle pagine web quando vengono richieste e l'utente approva la richiesta.
|
DIALER |
Tutti:
- L'app ha un'attività che le app possono richiamare tramite richieste di intent implicito, che fornisce l'interfaccia utente durante la chiamata mentre il dispositivo è in 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 consentirgli 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:
- L'app soddisfa tutti i
requisiti per le app di messaggistica.
- L'app ha un'attività che le app possono richiamare tramite richieste di intent implicito, 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
invocabile da intent impliciti, che possono recapitare messaggi ricevuti
dall'app Telefono quando l'utente sceglie di rispondere tramite messaggio durante una
chiamata in arrivo. L'app può recapitare messaggi tramite il proprio sistema di messaggistica.
- L'app ha due ricevitori di trasmissione, uno controllato dall'autorizzazione
android.permission.BROADCAST_SMS e l'altro 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 di servizi SMS e della notifica agli utenti.
|
EMERGENCY |
Tutti:
- L'app è un'app di sistema.
- L'app ha un'attività che presenta le informazioni di emergenza dell'utente.
Chiunque può accedere a questa schermata tramite il pulsante Emergenze
nell'attività del tastierino 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 icone delle app, widget e navigazione
basata su pulsanti o gesti (ad esempio, scorrere verso l'alto per visualizzare tutte le app).
|
CALL_REDIRECTION |
L'app ha un servizio protetto dall'autorizzazione android.permission.BIND_CALL_REDIRECTION_SERVICE
a cui il framework di telecomunicazioni può essere associato. 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'è.
- Modifica il numero in uscita in modo che venga instradato tramite un numero proxy.
- Annulla la chiamata.
|
CALL_SCREENING |
L'app ha un servizio protetto 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 sullo smartphone (e potenzialmente suonare, a seconda della modalità Non disturbare o del 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:
- 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 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:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app fornisce un'interfaccia utente per archiviare, organizzare e visualizzare i video e le immagini.
|
SYSTEM_AUTOMOTIVE_CLUSTER |
Tutti:
- L'app è un'app di sistema su Automotive.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app offre la possibilità di visualizzare un cluster automobilistico
(in genere adiacente al volante) per consentire agli utenti di rispondere alle
chiamate e accedere agli elenchi di contatti e ai registri chiamate.
|
COMPANION_DEVICE_WATCH |
L'app può richiedere di essere associata a un dispositivo smartwatch e di gestirlo
(utilizzando l'API fornita dalla classe
CompanionDeviceManager). Quando lo smartwatch
e l'app sono connessi tramite l'interfaccia utente fornita dall'app, gli utenti possono
gestire lo smartwatch dall'app, inclusa la sincronizzazione di contatti e calendario
e la gestione di notifiche e chiamate.
|
SYSTEM_AUTOMOTIVE_PROJECTION |
Tutti:
- 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, chiamate e ricerca, utilizzando i meccanismi di input sul veicolo, inclusi touch, comandi al volante e comandi vocali.
|
SYSTEM_SHELL |
Tutti:
- 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
i contenuti di una cartella o avviare app. I comandi della shell possono essere
eseguiti a livello di programmazione dalle app (se sono state
concesse le autorizzazioni necessarie) o dallo strumento ADB.
|
SYSTEM_CONTACTS |
Tutti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app fornisce un'interfaccia utente per consentire 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 messaggi ai propri contatti dall'app.
|
SYSTEM_SPEECH_RECOGNIZER |
Tutti:
- 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 live dal microfono di un'altra app per il riconoscimento vocale, attribuisce correttamente l'utilizzo del microfono all'app di chiamata e aggiorna di conseguenza le statistiche di funzionamento dell'app.
|
SYSTEM_WIFI_COEX_MANAGER |
Tutti:
- 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 cellulari.
|
SYSTEM_WELLBEING |
Tutti:
- 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 statistiche sull'utilizzo del dispositivo (ad esempio, il tempo di utilizzo dello schermo a settimana).
|
SYSTEM_TELEVISION_NOTIFICATION_HANDLER |
Tutti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app deve mostrare notifiche di avviso 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:
- 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 una determinata periferica
deve essere associata e gestita da un'app. Quando l'utente conferma,
l'app di gestione concede all'app associata l'autorizzazione ad accedere alla
periferica (ad esempio, nome, indirizzo, classe e stato di accoppiamento) e può avviare la procedura di accoppiamento.
|
SYSTEM_DOCUMENT_MANAGER |
Tutti:
- 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 2.2.3. Software della CDD di Android,
sotto il titolo
[3.2.3.1/H-0-1].
|
SYSTEM_ACTIVITY_RECOGNIZER |
Tutti:
|
SYSTEM_UI |
Tutti:
- 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:
- L'app è un'app di sistema su Android TV.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app ha un servizio che può comunicare con il dispositivo HID di controllo remoto della TV (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) alla piattaforma.
|
SYSTEM_UI_INTELLIGENCE |
Tutti:
- Essere un servizio preinstallato che fornisce, tramite le API del framework
(API pubbliche o di sistema), un processore intelligente sul dispositivo 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 CDD di Android
9.8.6 Acquisizione di contenuti.
- Il servizio non può disporre dell'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, Media, Telefonia, SystemUI e componenti
che forniscono API internet. Ogni binding consentito deve essere configurato in modo esplicito
tramite la configurazione
<allow-association> nella
configurazione di sistema.
- Il servizio non può condividere dati con le app a meno che non ci sia 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:
- Identiche a quelle per
SYSTEM_UI_INTELLIGENCE,
tranne per il fatto che il servizio
preinstallato fornisce un processore intelligente sul dispositivo per l'audio ambientale
(ad esempio, il riconoscimento dei brani in riproduzione nelle vicinanze del dispositivo).
|
SYSTEM_AUDIO_INTELLIGENCE |
Tutti:
- Identiche 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 codificati per video, podcast, chiamate, videochiamate e
messaggi audio).
|
SYSTEM_NOTIFICATION_INTELLIGENCE |
Tutti:
- Identiche 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, suggerisce risposte e azioni per le notifiche dei messaggi).
|
SYSTEM_TEXT_INTELLIGENCE |
Tutti:
- Identiche 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 la traduzione in tempo reale o la compilazione automatica).
|
SYSTEM_VISUAL_INTELLIGENCE |
Tutti:
- Identiche alle condizioni per
SYSTEM_UI_INTELLIGENCE,
tranne per il fatto che il servizio
preinstallato fornisce un processore intelligente sul dispositivo per le funzionalità visive
che comportano l'analisi dei dati della fotocamera. Ad esempio, mantenere attivo lo schermo
dello smartphone mentre l'utente lo guarda o determinare l'orientamento ideale
dello schermo in base all'orientamento del viso dell'utente dalla
fotocamera frontale del dispositivo.
|
COMPANION_DEVICE_APP_STREAMING |
Tutti:
- 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 come un cellulare
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 tra loro durante
l'accoppiamento.
- Entrambi i dispositivi devono essere vicini
1 durante lo streaming.
- L'app può creare e gestire canali di comunicazione con i dispositivi
connessi in modo che possano scambiarsi dati. L'app e i dispositivi
connessi DEVONO autenticarsi a vicenda (ad esempio, dimostrando
di conoscere chiavi condivise) per stabilire questi canali di comunicazione. I canali di comunicazione DEVONO essere protetti dalla crittografia end-to-end.
- L'app può inviare notifiche dal dispositivo di origine (A) al
dispositivo connesso (B) per consentire all'utente di intervenire sulle notifiche sul
dispositivo connesso (B).
- Essere in grado di trasmettere in streaming i metadati necessari per lo streaming delle app al dispositivo connesso (B), ad esempio l'elenco delle app disponibili sul dispositivo di origine (A).
- Essere in grado di riprodurre in streaming app dal dispositivo di origine (A) al dispositivo
collegato (B) dopo che l'utente ha indicato la propria preferenza in tal senso con
il consenso esplicito (sul dispositivo di origine (A) o sul dispositivo collegato (B)).
- Essere in grado di riprodurre (inserire) gli eventi che si verificano su un'app
in streaming sul dispositivo connesso (B) sul dispositivo di origine (A). Ad esempio, riprodurre un evento touch sul dispositivo connesso (B) alle stesse coordinate del dispositivo di origine (A) o riprodurre 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 il flusso del microfono del dispositivo di origine con il flusso del microfono di un dispositivo connesso mentre un'app in streaming utilizza il microfono.
- L'app acquisisce l'audio dal dispositivo sorgente (A) e lo trasmette in streaming al
dispositivo connesso (B).
- È CONSIGLIATO bloccare l'accesso alle app di impostazioni e agli store
dal dispositivo connesso (B).
- A partire da Android 16, l'acquisizione di screenshot
e la lettura dello schermo di contenuti sensibili, come
finestre e superfici sicure, DEVE essere impedita sul dispositivo
collegato (B).
- DEVE verificare l'integrità della build del sistema operativo del dispositivo connesso
(ad esempio, utilizzando l'attestazione del dispositivo come in
VerifiedBootState).
- Solo le app di streaming in cui è presente 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 affidabile dei dati, 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)
in caso di timeout di inattività del dispositivo connesso (B) su cui i contenuti
del display sono visibili. POTREBBE mantenere acceso lo schermo del dispositivo connesso per casi
come WakeLock, che mantiene acceso lo schermo del dispositivo Android. Deve essere presente un timeout
di inattività. Se il dispositivo connesso (B) non ha un
timeout di inattività proprio, 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 trasmettere app in streaming a 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
i criteri impostati dall'amministratore in merito all'attivazione o alla disattivazione dello streaming
sui dispositivi nelle vicinanze (ad esempio, utilizzando le
impostazioni
DevicePolicyManager in Android).
- DEVE garantire che i display remoti e tutte le sorgenti di 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
instradati di conseguenza.
- L'utente DEVE essere in grado di interrompere 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 questa funzionalità persistente sul dispositivo
di origine (A) che è sempre visibile e above the fold.
- DEVE mostrare un'indicazione sul dispositivo sorgente (A) quando lo streaming
avviene su un altro dispositivo, ad esempio un'icona nella barra di stato o una
notifica persistente.
|
DEVICE_POLICY_MANAGEMENT |
Tutti:
- Solo gli OEM possono concedere questo ruolo all'app. Le app non possono richiedere
questo ruolo, in quanto deve 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 Device Policy appropriato per diventare proprietario del dispositivo/profilo, se
necessario.
- L'app può, facoltativamente, aggiornare dinamicamente
le risorse
come stringhe e risorse disegnabili utilizzate 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 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 |
Tutti:
- 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, phishing e spyware) o
software mobile
indesiderato.
- L'app deve soddisfare tutti i requisiti descritti nella sezione 9.8.6.
OS-level and ambient data del CDD di Android.
- 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 Telephony e Internet. Ogni binding consentito deve essere configurato in modo esplicito tramite la
configurazione
<allow-association> nella configurazione
di sistema.
- L'app non deve condividere dati con altre app a meno che non ci 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 |
Tutti:
- 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 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 UI sullo smartphone che l'utente può utilizzare per disattivare
la sincronizzazione del calendario.
- L'app dovrebbe funzionare senza connessione a internet. Ad esempio,
utilizzando connessioni dirette con cavo o wireless.
|
AUTOMOTIVE_NAVIGATION |
Tutti:
- L'app ha un'attività che le app possono richiamare tramite richieste di intent implicito, 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 impliciti, che consente all'utente di navigare verso una posizione geografica specificata.
- L'app ha un'attività che viene avviata sul quadro strumenti quando
l'app mantiene lo stato attivo della navigazione.
L'attività deve mostrare la posizione attuale dell'utente, l'ambiente circostante
e consentirgli di raggiungere una posizione geografica specifica.
|
COMPANION_DEVICE_COMPUTER |
Tutti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- Consente agli utenti di eseguire il mirroring delle notifiche e accedere a foto e contenuti multimediali
dello 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.
|
NOTES |
Tutti:
|
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'interfaccia utente
fornita da CDM, gli utenti possono gestire gli occhiali concedendo
l'accesso ai contatti e l'autorizzazione a gestire le notifiche e le chiamate
telefoniche.
|
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING |
Tutti:
- 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 come un cellulare
o un tablet a un veicolo.
- Streaming di app da un dispositivo Android come un cellulare
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 tra loro durante
l'accoppiamento.
- Entrambi i dispositivi devono essere vicini
1 durante lo streaming.
- L'app può creare e gestire canali di comunicazione con i dispositivi
connessi in modo che possano scambiarsi dati. L'app e i dispositivi
connessi DEVONO autenticarsi a vicenda (ad esempio, dimostrando
di conoscere chiavi condivise) per stabilire questi canali di comunicazione. I canali di comunicazione DEVONO essere protetti dalla crittografia end-to-end.
- L'app può inviare notifiche dal dispositivo di origine (A) al
dispositivo connesso (B) per consentire all'utente di intervenire sulle notifiche sul
dispositivo connesso (B).
- Essere in grado di trasmettere in streaming i metadati necessari per lo streaming delle app al dispositivo connesso (B), ad esempio l'elenco delle app disponibili sul dispositivo di origine (A).
- Essere in grado di riprodurre in streaming app dal dispositivo di origine (A) al dispositivo
collegato (B) dopo che l'utente ha indicato la propria preferenza in tal senso con
il consenso esplicito (sul dispositivo di origine (A) o sul dispositivo collegato (B)).
- Essere in grado di riprodurre (inserire) gli eventi che si verificano su un'app
in streaming sul dispositivo connesso (B) sul dispositivo di origine (A). Ad esempio, riprodurre un evento touch sul dispositivo connesso (B) alle stesse coordinate del dispositivo di origine (A) o riprodurre 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 il flusso del microfono del dispositivo di origine con il flusso del microfono di un dispositivo connesso mentre un'app in streaming utilizza il microfono.
- L'app acquisisce l'audio dal dispositivo sorgente (A) e lo trasmette in streaming al
dispositivo connesso (B).
- È CONSIGLIATO bloccare l'accesso alle app di impostazioni e agli store
dal dispositivo connesso (B).
- A partire da Android 25Q2, l'acquisizione di screenshot
e la lettura dello schermo di contenuti sensibili, come
finestre e superfici sicure, DEVONO essere impedite 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).
- Solo le app di streaming in cui è presente 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 affidabile dei dati, 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)
in caso di timeout di inattività del dispositivo connesso (B) su cui i contenuti
del display sono visibili. POTREBBE mantenere acceso lo schermo del dispositivo connesso per casi
come WakeLock, che mantiene acceso lo schermo del dispositivo Android. Deve essere presente un timeout
di inattività. Se il dispositivo connesso (B) non ha un
timeout di inattività proprio, 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 trasmettere app in streaming a 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
i criteri impostati dall'amministratore in merito all'attivazione o alla disattivazione dello streaming
sui dispositivi nelle vicinanze (ad esempio, utilizzando le
impostazioni
DevicePolicyManager in Android).
- DEVE garantire che i display remoti e tutte le sorgenti di 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
instradati di conseguenza.
- L'utente DEVE essere in grado di interrompere 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 questa funzionalità persistente sul dispositivo
di origine (A) che è sempre visibile e above the fold.
- DEVE mostrare un'indicazione sul dispositivo sorgente (A) quando lo streaming
avviene su un altro dispositivo, ad esempio un'icona nella barra di stato o una
notifica persistente.
|
WALLET |
Uno dei seguenti:
- L'app ha un servizio APDU NFC che registra staticamente almeno un
AID nella categoria PAGAMENTO.
- L'app implementa un'istanza di
QuickAccessWalletService.
|