Android Automotive OS è una versione di Android ottimizzata per l'uso in auto che si basa sulla piattaforma Android di base. Le auto con Google integrato eseguono Android Automotive OS e sono dotate di app e servizi Google, tra cui Google Play, Gemini, l'Assistente Google e Google Maps.
Informazioni sull'hardware di Android Automotive OS
Per scoprire di più sulle specifiche hardware minime per i dispositivi Android Automotive OS, consulta la sezione Requisiti automotive del Compatibility Definition Document (CDD) per le versioni di Android supportate dalla tua app.
Ritagli display
Come per altri fattori di forma Android, i ritagli display sono supportati dai dispositivi Android Automotive OS con display non rettangolari. Tuttavia, le dimensioni e la forma dei ritagli presenti nelle auto possono essere molto diverse da quelle di altri fattori di forma. Per indicazioni dettagliate, consulta Utilizzare gli inset della finestra e i ritagli display.
Audio
I dispositivi Android Automotive OS sono in genere dispositivi a volume fisso. Per scoprire di più su come questo potrebbe influire sulla tua app, consulta Utilizzare i dispositivi a volume fisso.
Informazioni sul software di Android Automotive OS
Sebbene Android Automotive OS si basi sullo stesso sistema operativo di base utilizzato da altri fattori di forma, presenta alcune funzionalità aggiuntive uniche che possono influire sul modo in cui le app possono essere sviluppate e utilizzate.
UI di sistema
Esistono alcune differenze nel funzionamento di questi elementi dell'UI di sistema nelle auto di cui devi essere a conoscenza.
Navigazione
A differenza di altri fattori di forma, non è necessario che i dispositivi Android Automotive OS abbiano un'opzione di ritorno hardware o software. Quando non vengono eseguite in
modalità di compatibilità, le attività implementate dalla tua app devono includere opzioni dell'UI
per consentire la navigazione in-app in modo da soddisfare la AN-1 qualità
linea guida.
Layout della barra di sistema
Come per altri fattori di forma, Android Automotive OS include barre di sistema come le barre di stato e le barre di navigazione. Nelle auto, queste barre possono avere dimensioni e posizioni diverse rispetto ad altri fattori di forma. Ad esempio, le barre di navigazione possono essere posizionate a sinistra, a destra o nella parte inferiore dello schermo. Anche nel caso in cui sia presente una barra di stato in alto e una barra di navigazione in basso (come nella maggior parte degli smartphone e dei tablet), le dimensioni di questi elementi saranno probabilmente molto maggiori nelle auto.
Inoltre, mentre i ritagli display sui dispositivi mobili sono in genere contenuti entro i limiti delle barre di sistema, questo non è il caso delle auto.
Per indicazioni dettagliate, consulta Utilizzare gli inset della finestra e i ritagli display.
Modalità immersiva
Android Automotive OS consente agli OEM di controllare se le app possono mostrare o nascondere le barre di sistema per entrare e uscire dalla modalità immersiva. Impedendo alle app di nascondere le barre di sistema, gli OEM possono assicurarsi che i comandi del veicolo, come i comandi del climatizzatore, siano sempre accessibili sullo schermo.
Limitazioni dell'esperienza utente
Le limitazioni dell'esperienza utente (UX) sono la funzionalità integrata in Android Automotive OS per gestire le considerazioni sulla distrazione del conducente. Le limitazioni dell'UX impediscono automaticamente l'utilizzo di app che non sono state ottimizzate per l'uso durante la guida.
L'insieme esatto di regole che determinano come e quando le limitazioni dell'UX sono attive è determinato dai produttori di veicoli. Queste regole possono variare in base alla regione geografica. Ad esempio, lo stesso veicolo venduto in Europa potrebbe avere regole diverse da quelle vendute negli Stati Uniti.
Le regole di limitazione dell'UX possono variare anche in base al display all'interno di un veicolo. Ad esempio, è possibile che un display centrale nel campo visivo del conducente sia limitato mentre il veicolo è in movimento, mentre un display del passeggero rimanga senza limitazioni.
Se la tua app deve adattarsi alle limitazioni dell'UX, fai riferimento direttamente a queste limitazioni e non tentare di eseguire il reverse engineering della loro implementazione. Ad esempio, se presupponi che le limitazioni dell'UX siano attive quando la marcia non è in posizione di parcheggio, potresti limitare inutilmente un'app in esecuzione su un display del passeggero.
Ottimizzazione per la riduzione della distrazione
Per impostazione predefinita, le attività non possono essere eseguite mentre le limitazioni dell'UX sono attive per limitare le distrazioni del conducente. Per indicare al sistema che un'attività
deve continuare a essere eseguita mentre il veicolo è in movimento, è possibile aggiungere il seguente <meta-data>
elemento all'interno dell'elemento <activity> corrispondente.
<activity ...>
<meta-data android:name="distractionOptimized" android:value="true">
</activity>
Quando sviluppi app per Android Automotive OS, questi metadati
devono essere presenti nel file manifest solo quando dichiari l'elemento del file manifest
per CarAppActivity di un'app creata utilizzando la raccolta di app per auto.<activity>
Nessun'altra attività deve essere contrassegnata come ottimizzata per la riduzione della distrazione. In caso contrario, l'app verrà rifiutata quando viene inviata al Google Play Store.
Accessibilità
Il supporto dell'accessibilità per Android Automotive OS non è così ampio come per altri fattori di forma. TalkBack, Switch Access e Voice Access non sono disponibili sui dispositivi Android Automotive OS.
Le preferenze per i sottotitoli sono supportate sui dispositivi Android Automotive OS. Per informazioni dettagliate sull'integrazione, consulta Adottare le impostazioni dei sottotitoli di sistema.
Selezione rete
Android Automotive OS supporta la selezione della rete per applicazione (PANS), che consente agli OEM di instradare il traffico di rete mobile a reti diverse in base all' applicazione.
La maggior parte delle app utilizza solo la rete predefinita assegnata e può solo trarre vantaggio da questa funzionalità. Ad esempio, l'OEM potrebbe pagare il traffico di rete dalla tua app anche se l'utente non ha un proprio piano dati. Se la tua app (o una delle sue dipendenze) si basa su reti diverse da quella predefinita, potrebbe non trarre vantaggio dalle preferenze impostate dall'OEM. Per ulteriori indicazioni sull'utilizzo di reti diverse da quella predefinita, consulta Leggere lo stato della rete.
Funzionalità di sistema
Puoi rilevare se una determinata funzionalità è disponibile utilizzando
PackageManager::hasSystemFeature e modificare il comportamento dell'app
di conseguenza.
Funzionalità hardware
Come per altri fattori di forma non mobili, le funzionalità hardware disponibili nelle auto possono differire da quelle presenti sui dispositivi mobili.
Orientamento schermo
Come le TV, le auto sono dispositivi a orientamento fisso. A differenza delle TV, sono disponibili sia in orientamento verticale che orizzontale. Per assicurarsi che le app create per Android Automotive OS possano essere distribuite a tutti i veicoli, le app devono assicurarsi di non avere requisiti di funzionalità espliciti o impliciti per le funzionalità android.hardware.screen.landscape o android.hardware.screen.portrait.
Posizione rete
Molti dispositivi Android Automotive OS non implementano lo stack di telefonia utilizzato
per fornire la posizione di rete e pertanto non segnalano la funzionalità di sistema
android.hardware.location.network. Sebbene la posizione di rete
potrebbe non essere disponibile, l'accesso alla posizione approssimativa è comunque supportato.
Consulta Posizione approssimativa su Android Automotive OS.
Funzioni software
Alcune funzionalità software che si trovano comunemente su altri fattori di forma potrebbero non essere supportate sui dispositivi Android Automotive OS. Ad esempio, le seguenti funzionalità non sono disponibili su molti veicoli Android Automotive OS:
Soddisfare i requisiti delle funzionalità di Google Play
Per essere distribuite alle auto tramite Google Play, le app create per Android Automotive
OS devono includere un <uses-feature> elemento nel
AndroidManifest.xml file per la android.hardware.type.automotive
funzionalità:
<manifest ...>
...
<!--
See Choose a track for Android Automotive OS
for details on how to choose which value to use for the android:required attribute.
-->
<uses-feature
android:name="android.hardware.type.automotive"
android:required="[true|false]">
...
</manifest>
Inoltre, se la tua app ha una dichiarazione di funzionalità esplicita con
android:required="true" o un requisito di funzionalità implicito per una delle
seguenti funzionalità, devi aggiornarla o rimuoverla in modo che i
requisiti di funzionalità dell'app non ne impediscano la distribuzione ai veicoli altrimenti compatibili:
android.hardware.wifiandroid.hardware.screen.portraitandroid.hardware.screen.landscapeandroid.hardware.camera
Per le funzionalità dichiarate esplicitamente con android:required="true", puoi eseguire
una delle seguenti operazioni:
- Elimina l'elemento
<uses-feature>se la funzionalità non è altrimenti richiesta implicitamente. - Dichiara esplicitamente la funzionalità con
android:required="false".
Per le funzionalità richieste implicitamente, puoi eseguire una delle seguenti operazioni:
- Dichiara esplicitamente la funzionalità con
android:required="false". - Rimuovi o aggiorna i valori del file manifest che introducono il requisito implicito della funzionalità.
La modifica delle dichiarazioni delle funzionalità nel file manifest non influisce sul funzionamento effettivo dell'app, quindi verifica che l'app funzioni correttamente anche senza queste funzionalità.
Domande frequenti
Quali veicoli sono dotati di Google integrato?
Consulta il sito Auto con Google integrato per un elenco degli OEM che hanno modelli con Google integrato. Le specifiche hardware e altri dettagli del dispositivo possono essere ottenuti utilizzando il catalogo dei dispositivi della Play Console.