Implémenter la radio avec Media

L'UI de la radio est implémentée en tant qu'application indépendante. Pour savoir comment intégrer une UI de radio au matériel radio, consultez Implémenter la radio.

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

Parcours utilisateur pour le changement de source multimédia

Le schéma suivant illustre la façon dont l'implémentation de référence de Radio and Media implémente le flux utilisateur de changement d'application.

Parcours utilisateur pour le changement de source multimédia

Figure 1. Parcours utilisateur pour le changement de source multimédia

Pour assurer une transition fluide entre la radio et d'autres applications dans Media, la bibliothèque car-media-common définit des intents Android qui peuvent être utilisés pour lancer un sélecteur de source multimédia. Dans AOSP, ce sélecteur est implémenté dans le Lanceur d'applications, qui présente la même UI pour lancer des applications, mais filtrée pour n'afficher que les sources multimédias.

Les OEM peuvent choisir de conserver l'implémentation actuelle du lanceur d'applications ou d'implémenter un sélecteur de source multimédia personnalisé.

Le sélecteur peut fonctionner de deux manières :

  • Flux normal Une fois le sélecteur utilisé, la source sélectionnée s'affiche dans "Média" pour que l'utilisateur puisse parcourir son contenu.
  • Comme un commutateur. Un sélecteur est utilisé pour changer de source, mais le contenu multimédia ne s'affiche pas pour l'utilisateur. Cela vaut pour l'icône du 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 pour l'utilisateur (dans ce cas, la page d'accueil).

L'intent utilisé pour passer d'une source multimédia à une autre peut être obtenu à partir de la méthode MediaSource#getSourceSelectorIntent(), qui accepte un booléen popup qui renvoie un intent pour lancer chacun des flux décrits ci-dessus.

Les intents réels sont définis dans packages/apps/Car/libs/car-media-common/res/values/config.xml. Pour personnaliser cette configuration, utilisez des superpositions au moment de la compilation.

Remplacer l'application Radio

Étant donné que l'application Radio implémente Media Browse et Media Session, elle s'affiche dans le Lanceur d'applications. 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 lanceur d'applications.
  • être déclarée 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 l'expérience utilisateur en conduite

Les contenus multimédias doivent respecter toutes les restrictions liées à la distraction du conducteur. Pour ce faire, Media doit écouter CarUXRestrictionManager et implémenter toutes ses règles.

  • Les applications multimédias doivent se connecter à la bibliothèque Car et obtenir une instance de CarUXRestrictionManager.
  • Les applications multimédias doivent s'abonner aux mises à jour de la liste CarUxRestrictions et les implémenter comme indiqué dans la documentation.
  • Voici quelques exemples particulièrement importants pour les contenus multimédias :