Implémenter la radio avec les médias

L'interface utilisateur radio est implémentée en tant qu'application indépendante. Des instructions sur la façon d'intégrer une interface utilisateur radio au matériel radio peuvent être trouvées sur Implement radio .

La section suivante décrit comment intégrer Radio UI avec Media pour offrir aux utilisateurs une expérience transparente qui leur permet d'interagir avec les sources multimédias et la radio comme s'il s'agissait d'une seule application.

Flux d'utilisateurs de changement de source multimédia

Le diagramme suivant illustre comment l’implémentation de référence de Radio and Media implémente le flux utilisateur de changement d’application.

Flux d'utilisateurs de changement de source multimédia

Figure 1. Flux utilisateur de changement de source multimédia

Pour assurer une transition transparente entre Radio et d'autres applications dans Media, la bibliothèque car-media-common définit des intentions Android qui peuvent être utilisées pour lancer un sélecteur de source multimédia. Dans AOSP, ce sélecteur est implémenté dans App Launcher, présentant la même interface utilisateur pour lancer des applications mais filtré pour afficher uniquement les sources multimédias.

Les OEM peuvent choisir de conserver l’implémentation actuelle d’App Launcher telle quelle ou d’implémenter un sélecteur de source multimédia personnalisé.

Le sélecteur peut agir selon deux modes :

  • Flux normal. Après avoir utilisé le sélecteur, la source sélectionnée est affichée dans Média afin que l'utilisateur puisse parcourir son contenu.
  • Comme interrupteur. Un sélecteur est utilisé pour changer de source, mais le média n'est pas affiché à l'utilisateur. C'est le cas de l'icône Sélecteur sur la page d'accueil. Après avoir sélectionné une source, l'écran précédent le plus récent s'affiche à l'utilisateur (dans ce cas, la page d'accueil).

L'intention utilisée pour basculer entre les sources multimédias peut être obtenue à partir de la méthode MediaSource#getSourceSelectorIntent() , qui accepte un booléen popup qui renvoie une intention de lancer chacun des flux décrits ci-dessus.

Les intentions réelles sont définies dans packages/apps/Car/libs/car-media-common/res/values/config.xml . Pour personnaliser cette configuration, utilisez les superpositions au moment de la construction.

Remplacer l'application Radio

Étant donné que l'application Radio implémente Media Browse et Media Session, Radio est affichée dans le lanceur d'application. Pour empêcher le lancement de Media lorsqu'un utilisateur clique sur l'icône, deux éléments sont requis. La radio doit :

  • Avoir une activité de lancement .
  • Être déclaré comme source personnalisée . Pour ce faire, ajoutez le nom du composant à la clé custom_media_packages dans car-media-common/res/values/config.xml .

Restrictions de conduite UX

Les médias doivent respecter toutes les restrictions de distraction au volant UX. Pour ce faire, Media doit écouter le CarUXRestrictionManager et mettre en œuvre toutes ses politiques.

  • Les médias doivent se connecter à la bibliothèque Car et obtenir une instance de CarUXRestrictionManager .
  • Les médias doivent s'abonner aux mises à jour dans la liste des CarUxRestrictions et les mettre en œuvre comme documenté.
  • Les éléments suivants sont particulièrement importants pour les médias :