Implementa protezioni contro le distrazioni

Poiché lo smartphone di un utente è connesso agli altoparlanti di un'auto quando utilizza Android Auto, devi adottare ulteriori precauzioni per evitare distrazioni per il conducente.

Quando sviluppi app multimediali per Android Auto, implementa misure di sicurezza specifiche per ridurre al minimo le distrazioni del conducente. Queste misure di salvaguardia includono:

  • Impedire la riproduzione automatica dell'audio dell'app tramite gli altoparlanti dell'auto, anche per le sveglie programmate dall'utente.

  • Gestione della modalità di visualizzazione delle notifiche di Android Auto quando l'app passa dalla musica agli annunci.

Per farlo, utilizza l'API CarConnection per rilevare se uno smartphone viene proiettato sullo schermo dell'auto. In caso affermativo, disattiva le sveglie o fornisci un'interfaccia utente sullo smartphone per gestirle. Per gli annunci, imposta la chiave dei metadati METADATA_KEY_IS_ADVERTISEMENT per eliminare le notifiche che distraggono.

Disattivare gli allarmi in auto

Le app multimediali per Android Auto non devono avviare la riproduzione audio tramite gli altoparlanti dell'auto a meno che l'utente non avvii la riproduzione, ad esempio premendo un pulsante Riproduci. Nemmeno una sveglia programmata dall'utente dall'app multimediale deve iniziare a riprodurre musica dagli altoparlanti dell'auto.

Per soddisfare questo requisito, la tua app può utilizzare CarConnection come segnale prima di riprodurre qualsiasi audio. La tua app può verificare se lo smartphone proietta contenuti sullo schermo dell'auto. Osserva LiveData per il tipo di connessione. Verifica che il valore sia uguale a CONNECTION_TYPE_PROJECTION.

Se lo smartphone dell'utente sta proiettando contenuti, le app multimediali che supportano le sveglie devono eseguire una di queste azioni:

  • Disattiva l'allarme.

  • Riproduci di nuovo la sveglia STREAM_ALARM e fornisci un'interfaccia utente sullo schermo dello smartphone per disattivarla.

Gestire le pubblicità sui media

Per impostazione predefinita, Android Auto mostra una notifica quando i metadati dei contenuti multimediali cambiano durante una sessione di riproduzione audio. Quando un'app multimediale passa dalla riproduzione di musica alla pubblicazione di un annuncio, la visualizzazione di una notifica distrae l'utente. Per impedire ad Android Auto di visualizzare una notifica, imposta la chiave dei metadati dei contenuti multimediali METADATA_KEY_IS_ADVERTISEMENT su METADATA_VALUE_ATTRIBUTE_PRESENT:

Kotlin

import androidx.media.utils.MediaConstants

override fun onPlayFromMediaId(mediaId: String, extras: Bundle?) {
    MediaMetadataCompat.Builder().apply {
        if (isAd(mediaId)) {
            putLong(
                MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,
                MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT)
        }
        // ...add any other properties you normally would.
        mediaSession.setMetadata(build())
    }
}

Java

import androidx.media.utils.MediaConstants;

@Override
public void onPlayFromMediaId(String mediaId, Bundle extras) {
    MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
    if (isAd(mediaId)) {
        builder.putLong(
            MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,
            MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT);
    }
    // ...add any other properties you normally would.
    mediaSession.setMetadata(builder.build());
}