Crea app parcheggiate per il sistema operativo Android Automotive

Oltre a supportare le app progettate per essere utilizzate durante la guida, il sistema operativo Android Automotive supporta browser, giochi e app video da utilizzare quando l'auto è parcheggiata. Puoi inviare alle auto la stessa app che utilizzi anche per altri dispositivi con schermi di grandi dimensioni con poche modifiche di piccola entità.

Testa la tua app esistente su un emulatore del sistema operativo Android Automotive

Per iniziare a creare la tua app per il sistema operativo Android Automotive, testa innanzitutto la tua app esistente su un emulatore di sistema operativo Android Automotive. Per configurare un emulatore, segui i passaggi descritti in Eseguire test con l'emulatore del sistema operativo Android Automotive. Dopodiché potrai eseguire l'app seguendo le istruzioni riportate in Eseguire la tua app nell'emulatore.

Quando esegui l'app, verifica la presenza di problemi di compatibilità, come i seguenti:

  • Le schermate di infotainment hanno orientamenti fissi. Per soddisfare le norme sulla qualità delle app per auto, le app devono supportare sia l'orientamento verticale sia l'orientamento orizzontale.
  • Le API disponibili su altri dispositivi potrebbero non essere disponibili sul sistema operativo Android Automotive. Ad esempio, alcune API di Google Play Services non sono disponibili sul sistema operativo Android Automotive. Consulta la sezione relativa alla disattivazione delle funzionalità per informazioni dettagliate su come gestire questi problemi.

Configurare i file manifest dell'app

Per scegliere come target il sistema operativo Android Automotive, la tua app deve avere determinate voci del file manifest. Le app che hanno come target il sistema operativo Android Automotive vengono inviate al Play Store utilizzando un tipo di release separato del sistema operativo Automotive. Vengono sottoposti a una procedura di revisione manuale per garantire che siano sicuri per l'uso in auto. Per ulteriori dettagli, consulta Distribuzione di app Android per le auto.

Funzionalità richieste del sistema operativo Android Automotive

Per essere elencate nel Play Store in un'auto, le app sviluppate per il sistema operativo Android Automotive devono includere il seguente elemento <uses-feature> nel file AndroidManifest.xml:

<manifest ...>
    ...
    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />
    ...
</manifest>

Le app inviate a canali non automobilistici non possono dichiarare l'elemento <uses-feature> mostrato nell'esempio di codice precedente perché non possono dipendere da hardware specifico dell'auto. Di conseguenza, per distribuire la stessa app sia per i dispositivi auto che non per quello non automobilistico, devi generare almeno due versioni dell'app: una per i dispositivi automobilistici e un'altra per i dispositivi mobili. Per saperne di più su come creare versioni distinte, consulta la documentazione seguente:

Le due versioni dell'app possono condividere lo stesso nome di pacchetto, ma devono avere codici di versione diversi poiché vengono caricati separatamente nei canali del Play Store.

In alternativa, invece di utilizzare versioni distinte, puoi usare nomi di pacchetti separati per gli APK o gli app bundle per auto e dispositivi mobili. Per comprendere i vantaggi di ciascun approccio, consulta la sezione Nomi dei pacchetti nella guida per gli sviluppatori di app multimediali.

Oltre all'elemento mostrato nell'esempio di codice precedente, le app create per il sistema operativo Android Automotive devono includere i seguenti elementi <uses-feature> nell'elemento principale <manifest>:

<uses-feature
  android:name="android.hardware.wifi"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.portrait"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.landscape"
  android:required="false"/>

Se imposti esplicitamente queste funzionalità su Non obbligatorio, garantisci che la tua app non sia in conflitto con le funzionalità hardware disponibili nei dispositivi con sistema operativo Android Automotive.

Assicurati che non ci siano attività ottimizzate per le distrazioni

Per assicurarti che la tua app possa essere utilizzata solo quando è parcheggiata, non includere il seguente elemento <meta-data> in nessun elemento <activity> all'interno del manifest:

<!-- NOT ALLOWED -->
<meta-data
  android:name="distractionOptimized"
  android:value="true"/>

Senza questi metadati, le attività dell'app vengono bloccate automaticamente dal sistema operativo quando l'auto entra in modalità Auto, per ridurre le distrazioni per il conducente. Si tratta di un callback del onPause ciclo di vita, durante il quale devi mettere in pausa la riproduzione audio e video dell'app.

Ottimizzare l'app per il sistema operativo Android Automotive

Per offrire agli utenti la migliore esperienza possibile, potrebbe essere necessario attivare o disattivare determinate funzionalità, a seconda che l'app sia in esecuzione su un'auto.

Disattiva funzionalità

Se vuoi rendere disponibile un'app mobile esistente sul sistema operativo Android Automotive, determinate funzionalità e funzionalità potrebbero non essere pertinenti o disponibili. Ad esempio, generalmente le auto non consentono l'accesso alle fotocamere. Inoltre, sul sistema operativo Android Automotive è disponibile solo un sottoinsieme di Google Play Services; per ulteriori dettagli, consulta Google Play Services per le auto.

Puoi utilizzare l'API PackageManager.hasSystemFeature per rilevare se l'app è in esecuzione sul sistema operativo Android Automotive verificando la funzionalità FEATURE_AUTOMOTIVE, come mostrato nell'esempio seguente:

Kotlin

val packageManager: PackageManager = ... // Get a PackageManager from a Context
val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

Java

PackageManager packageManager = ... // Get a PackageManager from a Context
boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

In alternativa, se la tua app ha anche un componente Android Auto, puoi usare l'API CarConnection della libreria delle app di Android for Cars per rilevare se l'app è in esecuzione sul sistema operativo Android Automotive o Android Auto oppure se non è collegata a un'auto.

Per Picture in picture (PIP), segui le best practice consolidate per verificare se la funzionalità è disponibile e reagire in modo appropriato.

Gestire gli scenari offline

Anche se le auto sono sempre più connesse a Internet, consigliamo di gestire le app senza connessione a internet, come nei seguenti casi:

  • Gli utenti possono disattivare i dati mobili offerti come parte di un pacchetto di abbonamento del produttore dell'auto.
  • L'accesso ai dati mobili potrebbe essere limitato in alcune aree.
  • Le auto con radio Wi-Fi potrebbero essere fuori dal raggio d'azione del Wi-Fi oppure un OEM potrebbe disattivare il Wi-Fi a favore di una rete mobile.

Preparati a gestire questi scenari nella tua app riducendo agevolmente la funzionalità che dipende dall'accesso a internet, ad esempio offrendo contenuti offline. Per ulteriori informazioni, consulta le best practice per l'ottimizzazione del networking.

Utilizza risorse alternative

Per adattare l'app alle auto, puoi utilizzare il qualificatore risorsa car per fornire risorse alternative quando utilizzi un veicolo con sistema operativo Android Automotive. Ad esempio, se utilizzi le risorse di dimensione per archiviare i valori della spaziatura interna, puoi utilizzare un valore maggiore per il set di risorse car al fine di aumentare le dimensioni dei touch target.

Distribuire l'app

Dopo aver testato la tua app in base alle norme sulla qualità delle app per auto relative alla categoria e aver apportato una build del sistema operativo Android Automotive con le modifiche necessarie alla categoria, puoi pubblicarla nei canali del fattore di forma del sistema operativo Automotive sul Play Store. Per ulteriori dettagli sul processo di pubblicazione, consulta Distribuzione di app Android per le auto.

Inviare feedback sulle app parcheggiate

Se riscontri un problema o richiedi una funzionalità durante lo sviluppo dell'app parcheggiata per il sistema operativo Android Automotive, puoi segnalarlo utilizzando lo strumento Issue Tracker di Google. Assicurati di compilare tutte le informazioni richieste nel modello del problema. Prima di segnalare un nuovo problema, controlla se è già presente nell'elenco dei problemi. Puoi iscriverti e votare i problemi facendo clic sulla stella relativa a un problema nel tracker. Per ulteriori informazioni, consulta la sezione Iscrizione a un problema.

Crea un nuovo problema