Implementare la radio con Media

L'interfaccia utente della radio è implementata come app indipendente. Le istruzioni su come integrare un'interfaccia utente della radio nell'hardware della radio sono disponibili nella pagina Implementare la radio.

La sezione seguente descrive come integrare l'interfaccia utente della radio con i contenuti multimediali per offrire agli utenti un'esperienza senza interruzioni che consenta loro di interagire con le sorgenti multimediali e la radio come se fossero una singola app.

Flusso utente per il passaggio da una sorgente multimediale all'altra

Il seguente diagramma illustra come l'implementazione di riferimento di Radio e Media implementa il flusso utente per il passaggio da un'app all'altra.

Flusso utente per il passaggio da una sorgente multimediale all'altra

Figura 1. Flusso utente per il passaggio da una sorgente multimediale all'altra

Per garantire una transizione senza interruzioni tra Radio e altre app in Media, la libreria car-media-common definisce intent Android che possono essere utilizzati per avviare un selettore di origini media. In AOSP, questo selettore è implementato in Avvio app, presentando la stessa UI per l'avvio delle app, ma filtrata in modo da mostrare solo le sorgenti multimediali.

Gli OEM possono scegliere di utilizzare l'attuale implementazione di Avvio app così com'è o implementare un selettore di origini media personalizzato.

Il selettore può funzionare in due modalità:

  • Flusso normale. Dopo aver utilizzato il selettore, l'origine selezionata viene visualizzata in Media in modo che l'utente possa sfogliarne i contenuti.
  • Come interruttore. Viene utilizzato un selettore per cambiare sorgente, ma i contenuti multimediali non vengono mostrati all'utente. Questo vale per l'icona del selettore nella home page. Dopo aver selezionato un'origine, all'utente viene mostrata la schermata precedente più recente (in questo caso la home page).

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

Le intenzioni effettive sono definite in packages/apps/Car/libs/car-media-common/res/values/config.xml. Per personalizzare questa configurazione, utilizza gli overlay in fase di compilazione.

Sostituire l'app Radio

Poiché l'app Radio implementa la ricerca dei contenuti multimediali e la sessione multimediale, viene visualizzata in Avvio 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 dichiarata come origine personalizzata. Per farlo, aggiungi il nome del componente alla chiave custom_media_packages in car-media-common/res/values/config.xml.

Limitazioni di guida dell'esperienza utente

I contenuti multimediali devono rispettare tutte le limitazioni relative alle distrazioni alla guida per l'esperienza utente. A tal fine, Media deve ascoltare CarUXRestrictionManager e implementare tutti i relativi criteri.

  • I contenuti multimediali devono connettersi alla raccolta Car e recuperare un'istanza di CarUXRestrictionManager.
  • I contenuti multimediali devono iscriversi agli aggiornamenti nell'elenco di CarUxRestrictions e implementarli come descritto.
  • Particolarmente importanti per i contenuti multimediali sono: