Implementare la radio con i contenuti multimediali

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.

Procedura 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 di cambio di app.

Procedura di passaggio da una sorgente multimediale all'altra

Figura 1. Flusso utente per il passaggio da una fonte 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 applicazioni così com'è oppure implementare un selettore personalizzato delle fonti multimediali.

Il selettore può agire in due modalità:

  • Flusso normale. Dopo aver utilizzato il selettore, l'origine selezionata viene visualizzata nei contenuti multimediali in modo che l'utente possa sfogliarne i contenuti.
  • Come un passaggio. 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, viene mostrata all'utente la schermata precedente più recente (in questo caso la home page).

L'intent utilizzato per passare da una sorgente 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 al momento della creazione.

Sostituire l'app Radio

Poiché l'app Radio implementa la funzionalità Sfoglia 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 ottenere 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: