Implementare la radio con Media

L'interfaccia utente della radio è implementata come app indipendente. Le istruzioni su come integrare un'interfaccia utente radio nell'hardware della radio sono disponibili in Implement radio .

La sezione seguente descrive come integrare l'interfaccia utente di Radio con Media per fornire agli utenti un'esperienza fluida che consenta agli utenti di interagire con fonti multimediali e radio come se fossero un'unica app.

Flusso utente di commutazione della sorgente multimediale

Il diagramma seguente illustra come l'implementazione di riferimento di Radio e Media implementa il flusso utente di cambio app.

Flusso utente di commutazione della sorgente multimediale

Figura 1. Flusso utente che cambia sorgente multimediale

Per fornire una transizione fluida tra Radio e altre app in Media, la libreria car-media-common definisce intent Android che possono essere utilizzati per avviare un selettore di sorgenti multimediali. In AOSP, questo selettore è implementato nell'App Launcher, presentando la stessa interfaccia utente per l'avvio delle app ma filtrata per visualizzare solo le fonti multimediali.

Gli OEM possono scegliere di mantenere l'attuale implementazione di App Launcher così com'è o implementare un selettore di origini multimediali personalizzato.

Il selettore può agire in due modalità:

  • Flusso normale. Dopo aver utilizzato il selettore, la sorgente selezionata viene visualizzata in Media in modo che l'utente possa sfogliarne il contenuto.
  • Come interruttore. Un selettore viene utilizzato per cambiare sorgente, ma il contenuto multimediale non viene visualizzato all'utente. Questo vale per l'icona del Selettore nella Home Page. Dopo aver selezionato una sorgente, all'utente viene visualizzata la schermata precedente più recente (in questo caso, la Home page).

L'intento utilizzato per passare da una sorgente multimediale all'altra può essere ottenuto dal metodo MediaSource#getSourceSelectorIntent() , che accetta un popup booleano che restituisce un intento per avviare ciascuno dei flussi descritti sopra.

Gli intenti effettivi sono definiti in packages/apps/Car/libs/car-media-common/res/values/config.xml . Per personalizzare questa configurazione, utilizza gli overlay in fase di compilazione.

Sostituisci l'app Radio

Dato che l'app Radio implementa la navigazione multimediale e la sessione multimediale, la radio viene visualizzata nell'icona di avvio dell'app. Per impedire l'avvio di Media quando un utente fa clic sull'icona, sono necessari due elementi. La radio deve :

  • Avere un'attività di avvio .
  • Essere dichiarato come origine personalizzata . Per fare ciò, aggiungi il nome del componente alla chiave custom_media_packages in car-media-common/res/values/config.xml .

Restrizioni alla guida UX

I media devono osservare tutte le restrizioni relative alle distrazioni di guida UX. Per fare ciò, i media devono ascoltare CarUXRestrictionManager e implementare tutte le sue politiche.