ASSISTANT |
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 ha un servizio di interazione vocale sempre attivo protetto 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 assistenza.
|
BROWSER |
Tutti:
- 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 visualizzare i contenuti corrispondenti al link selezionato senza ulteriore intervento dell'utente.
- L'app deve essere in grado di fornire le informazioni sulla geolocalizzazione corrente del dispositivo alle pagine web quando viene richiesta e l'utente approva la richiesta.
|
DIALER |
Tutti:
- 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 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 la cronologia delle chiamate sul suo 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 implicite, che possono inviare un messaggio a un numero di telefono.
- L'app ha un servizio soggetto all'autorizzazione
android.permission.SEND_RESPOND_VIA_MESSAGE e invocabile tramite intent impliciti, che può inviare 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 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 di scrivere i messaggi per
il provider di SMS e di avvisare gli utenti.
|
EMERGENCY |
Tutte:
- L'app è un'app di sistema.
- L'app ha un'attività che mostra le informazioni di emergenza dell'utente.
Chiunque può accedere a questa schermata tramite il pulsante di emergenza nell'attività Telefono di emergenza.
|
HOME |
L'app ha un'attività che può avviare la schermata Home quando l'utente preme il pulsante Home. La schermata Home dovrebbe mostrare le icone delle app, i widget e supportare la navigazione basata su pulsanti o gesti (ad esempio, scorri 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'è.
- Modifica il numero in uscita in modo che venga instradato tramite un numero proxy.
- Annulla la chiamata.
|
CALL_SCREENING |
L'app dispone di un servizio controllato dall'autorizzazione android.permission.BIND_SCREENING_SERVICE ,
che esegue due funzioni:
- Blocco e filtro delle chiamate: il servizio può scegliere quali chiamate inviare all'app Telefono sullo smartphone (e potenzialmente farle squillare, in base alla modalità Non disturbare o al volume) e quali inviare in silenzio alla segreteria.
- Identificazione chiamate: il servizio può identificare e visualizzare le informazioni su una chiamata tramite un'interfaccia utente.
|
SYSTEM_GALLERY |
Tutti:
- 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 |
Tutti:
- 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 ). Quando lo smartwatch
e l'app sono connessi tramite l'interfaccia utente fornita dall'app, gli utenti possono gestire lo smartwatch dall'app, ad esempio sincronizzare i contatti e il calendario, nonché gestire le notifiche e le telefonate.
|
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 del veicolo, tra cui tocco, controlli del 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 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 tramite 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 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 stream in tempo reale del microfono da un'altra app per il riconoscimento vocale, attribuisce correttamente l'utilizzo del microfono all'app chiamante e aggiorna di conseguenza le statistiche di 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.
|
SYSTEM_WELLBEING |
Tutte:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- L'app deve consentire agli utenti di ridurre le distrazioni
e fornire statistiche sul loro utilizzo del dispositivo (ad es.
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 in primo piano 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 un determinato dispositivo periferico deve essere associato e gestito da un'app. Quando l'utente conferma, l'app di gestione concede all'app associata l'autorizzazione di accesso al dispositivo periferico (ad esempio il nome, l'indirizzo, la classe e lo stato dell'accoppiamento) e può avviare la procedura di accoppiamento.
|
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 2.2.3 del CDD di Android. Software
nella sezione
[3.2.3.1/H-0-1].
|
SYSTEM_ACTIVITY_RECOGNIZER |
Tutti:
- L'app è un'app di sistema.
- L'app ha un servizio soggetto a verifica da parte di
android.permission.ACTIVITY_RECOGNITION , che può eseguire
il riconoscimento delle attività (ad esempio corsa o ciclismo).
|
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 loro 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 dispone di un servizio che può comunicare con il dispositivo HID del telecomando della TV (ad esempio tramite BLE), iniettare eventi (ad esempio i clic sui pulsanti) e inviare altri dati (ad esempio lo stream audio di un microfono integrato nel telecomando) alla piattaforma.
|
SYSTEM_UI_INTELLIGENCE |
Tutti:
- È un servizio preinstallato che fornisce, tramite le API del framework
(API pubbliche o di sistema), un processore intelligente on-device per le funzionalità dell'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ò 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, Media, 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 sia presente 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:
- Identico alle condizioni per
SYSTEM_UI_INTELLIGENCE ,
ad eccezione del fatto che il servizio
preinstallato fornisce un processore intelligente sul dispositivo per l'audio ambientale
(ad esempio, il riconoscimento dei brani in riproduzione vicino al dispositivo).
|
SYSTEM_AUDIO_INTELLIGENCE |
Tutti:
- Identiche alle condizioni per
SYSTEM_UI_INTELLIGENCE ,
tranne che il servizio preinstallato
fornisce un processore intelligente on-device per l'audio (ad es.
sottotitoli codificati per video, podcast, telefonate, 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'elaborazione intelligente on-device per le notifiche
(ad esempio, suggerendo 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 elaboratore intelligente on-device per il testo (ad es.
traduzione in tempo reale o compilazione automatica).
|
SYSTEM_VISUAL_INTELLIGENCE |
Tutti:
- Identico alle condizioni per
SYSTEM_UI_INTELLIGENCE , ad eccezione del fatto che il servizio preinstallato fornisce un processore intelligente on-device per le funzionalità visive che comportano 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 rilevato dalla fotocamera anteriore del dispositivo.
|
COMPANION_DEVICE_APP_STREAMING |
Tutti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- A partire da Android 15
Quando viene stabilita la connessione iniziale dal dispositivo A al dispositivo B:
Entrambi i dispositivi DEVONO avere almeno un account corrispondente nel loro AccountManager e l'accoppiamento deve essere confermato da un codice una tantum.
- L'utente deve confermare la password dell'account sul dispositivo remoto secondario quando accoppia i dispositivi oppure
- Il codice monouso deve essere mostrato sul dispositivo di origine e inserito sul dispositivo connesso.
- Nessun requisito di intervallo durante lo streaming.
In alternativa, il dispositivo A e il dispositivo B DEVONO trovarsi nel raggio d'azione del Bluetooth l'uno dell'altro e lo streaming deve essere autorizzato con un codice una tantum.
- Il codice una tantum viene visualizzato sul dispositivo di origine e inserito sul
dispositivo connesso.
- I dispositivi devono rimanere nel raggio d'azione del Bluetooth l'uno dell'altro
durante lo streaming.
- 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 l'un l'altro (ad esempio dimostrando di conoscere le chiavi condivise).
I canali di comunicazione devono essere protetti con crittografia.
- L'app può inviare notifiche dal dispositivo locale al dispositivo 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 (iniettare) gli eventi che si verificano su un'app in streaming su un dispositivo connesso sul dispositivo locale. Ad esempio,
riprodurre un evento tocco 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 collegato.
- Deve bloccare lo stream della fotocamera del dispositivo locale mentre un'app in streaming utilizza la fotocamera.
- Deve verificare l'integrità della build del sistema operativo del dispositivo connesso
(ad esempio utilizzando l'attestazione del dispositivo come in
VerifiedBootState ).
- Riproduci in streaming solo le app 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 una tantum visualizzato sul dispositivo di origine e inserito sul dispositivo connesso. Tieni presente che nel caso di
dispositivi che supportano multiutente (e non multi-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.
- Deve disconnettere le sessioni di streaming di app in corso se l'utente non interagisce con il dispositivo connesso (ad esempio, tastiera, touchscreen e mouse non sono attivi) per 5 minuti. Le app di streaming video sono esenti da questo requisito.
- A partire da Android 15
È necessario scollegare tutti i dispositivi virtuali al termine del tempo di attesa di inattività del dispositivo remoto su cui sono visibili i contenuti del display. Potrebbe mantenere attivo lo schermo
del dispositivo remoto per casi come WakeLock, che mantengono lo schermo
del dispositivo Android attivo. Deve essere presente un timeout di inattività. Se il
dispositivo remoto non ha un timeout di inattività, deve essere utilizzato un timeout di inattività di maximaalmeno 5 minuti.
- Se il dispositivo di origine utilizza il fattore di conoscenza della schermata di blocco (LSKF), quando lo schermo è bloccato, l'app non deve trasmettere app a un dispositivo collegato, a meno che il 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 per l'attivazione o la disattivazione dello streaming di app su
dispositivi nelle vicinanze (ad esempio, utilizzando
le
DevicePolicyManager
impostazioni in Android).
- Devi assicurarti che il display remoto e tutte le sorgenti di 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 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 è limitato dalla schermata di blocco, se sullo smartphone è impostato un blocco schermo.
A partire da Android 15, deve essere mostrata
questa funzionalità persistente sul dispositivo locale, che è sempre visibile
e sopra la piega.
- Deve mostrare un'affordance sul dispositivo di origine 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 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/del profilo, se
necessario.
- Se vuoi, l'app può aggiornare dinamicamente le risorse, ad esempio stringhe e drawable, 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 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 |
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 app spyware) o
software mobile indesiderato.
- L'app deve soddisfare tutti i requisiti descritti nella sezione 9.8.6 del CDD di Android.
Dati a livello di sistema operativo e ambientali.
- 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 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.
- 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:
- 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 memorizzare
questi dati di calendario nel
provider di calendario.
- L'app deve fornire un componente dell'interfaccia utente 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 dell'interfaccia utente sullo smartphone che l'utente può utilizzare per disattivare la sincronizzazione del calendario.
- L'app dovrebbe funzionare senza una 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 implicite, che mostrano la posizione e i dintorni attuali dell'utente.
- L'app ha un'attività che le app possono richiamare tramite richieste di intent implicite, che consentono all'utente di passare a una posizione geografica specificata.
- L'app ha un'attività che viene avviata sul quadro strumenti quando l'app ha il tasto di navigazione attivo.
L'attività deve mostrare la posizione attuale dell'utente, i dintorni e consentirgli di raggiungere una posizione geografica specificata.
|
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 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.
- Ha 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 per occhiali e per gestirlo (utilizzando l'API fornita dalla classe
CompanionDeviceManager . Quando il dispositivo per occhiali e l'app sono connessi utilizzando l'interfaccia utente
fornita dal CDM, gli utenti possono gestire il dispositivo per occhiali concedendogli accesso ai contatti e l'autorizzazione per gestire le notifiche e le chiamate.
|
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING |
Tutti:
- L'app è un'app di sistema.
- Solo gli OEM possono concedere questo ruolo all'app.
- A partire da Android 15
Quando viene stabilita la connessione iniziale dal dispositivo A al dispositivo B:
Entrambi i dispositivi DEVONO avere almeno un account corrispondente nel loro AccountManager e l'accoppiamento deve essere confermato da un codice una tantum.
- L'utente deve confermare la password dell'account sul dispositivo remoto secondario quando accoppia i dispositivi oppure
- Il codice monouso deve essere mostrato sul dispositivo di origine e inserito sul dispositivo connesso.
- Nessun requisito di intervallo durante lo streaming.
In alternativa, il dispositivo A e il dispositivo B DEVONO trovarsi nel raggio d'azione del Bluetooth l'uno dell'altro e lo streaming deve essere autorizzato con un codice una tantum.
- Il codice una tantum viene visualizzato sul dispositivo di origine e inserito sul
dispositivo connesso.
- I dispositivi devono rimanere nel raggio d'azione del Bluetooth l'uno dell'altro
durante lo streaming.
- L'app può creare e gestire canali di comunicazione con i dispositivi collegati in modo che possano scambiarsi dati. Per stabilire questi canali di comunicazione, l'app e i dispositivi collegati devono autenticarsi l'un l'altro (ad esempio, dimostrando di conoscere le chiavi condivise).
I canali di comunicazione devono avere protezione con crittografia end-to-end.
- L'app può inviare notifiche dal dispositivo locale al dispositivo 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 (iniettare) gli eventi che si verificano su un'app in streaming su un dispositivo connesso sul dispositivo locale. Ad esempio,
riprodurre un evento tocco sul tablet alle stesse coordinate dello
smartphone o riprodurre un evento di input che si è verificato sul dispositivo
con le stesse semantiche di input dello smartphone.
- L'app può sostituire lo stream del microfono del dispositivo locale con lo stream 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 collegato.
- Deve verificare l'integrità della build del sistema operativo del dispositivo collegato
(ad esempio utilizzando l'attestazione del dispositivo come in
VerifiedBootState ).
- Riproduci in streaming solo le app in cui è presente un solo account corrispondente nel registry 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 una tantum 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.
- Se il dispositivo di origine utilizza 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
le norme impostate dall'amministratore per l'attivazione o la disattivazione dello streaming su
dispositivi nelle vicinanze (ad esempio, utilizzando
DevicePolicyManager
le impostazioni in Android).
- Devi assicurarti che il display remoto e tutte le sorgenti di 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 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 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.
|
WALLET |
Uno dei seguenti:
- L'app ha un servizio APDU NFC che registra in modo statico almeno un AID nella categoria PAGAMENTO.
- L'app implementa un'istanza di
QuickAccessWalletService .
|