Aperçu

La pile radio de diffusion comprend les composants illustrés dans la figure 1.

Architecture de Broadcast Radio
Figure 1. Architecture de Broadcast Radio

Application de références radio

Pour en savoir plus sur l'implémentation de la commande radio, consultez la section Implémentation de la radiocommande.

Un exemple d'application radio Java (packages/apps/Car/Radio) peut vous servir de référence. la mise en œuvre. Lorsque le service de l'application démarre, il demande à Radio Manager d'ouvrir un tuner radio. Ensuite, L'application peut envoyer des requêtes au tuner radio, telles que le réglage d'une station de radio, d'une fréquence, ou pour rechercher la prochaine station de radio disponible. L'application reçoit les mises à jour de Radio Manager et Tuner radio intégré à la radio. Exemples : informations sur les programmes en cours, listes des programmes radio, configurations et les paramètres définis par le fournisseur. L'application Radio de référence n'est compatible qu'avec les radios AM et FM. Les OEM peuvent modifier ou remplacez l'application Radio si vous le souhaitez.

Responsable radio

Lorsque l'application demande à Radio Manager d'ouvrir un tuner, Radio Manager (frameworks/base/core/java/android/hardware/radio/RadioManager.java) demande le Broadcast Radio Service (BRS) pour ouvrir une session de tuner, puis terminer la session dans un tuner radio (frameworks/base/core/java/android/hardware/radio/RadioTuner.java), qui est renvoyé à l'application. Le tuner radio définit les API (réglage, pas, annulation, etc.) pouvant être appelées à partir d'applications radio. et d'envoyer des demandes au BRS. Méthodes de rappel (RadioTuner.Callback) définies dans la radio Le tuner envoie des informations sur la radiodiffusion HAL, telles que des informations sur le programme en cours, le programme et les paramètres définis par le fournisseur, du BRS aux applications.

Service de radiodiffusion

The Broadcast Radio Service (frameworks/base/services/core/java/com/android/server/broadcastradio) est le client pour Broadcast Radio HAL. Le BRS coordonne plusieurs Radio Managers avec Broadcast Radio HAL. Le BRS soutient le langage de définition d'interface HAL (HIDL), et Diffusion du langage de définition d'interface Android (AIDL) des HAL radio. Le BRS est associé au HAL AIDL lorsqu'il existe un service HAL AIDL. Sinon, le service est lié au HAL HIDL. Le BRS crée un module radio pour chaque instance HAL disponible (AM, FM et DAB, par exemple).

Chaque Radio Manager peut demander au BRS de créer une session de tuner sur la le module Radio correspondant, en fonction du type de radio. Chaque session de tuner peut appeler des méthodes, telles que régler, échelonner et annuler (définis dans les interfaces HAL) pour effectuer des opérations sur le l'instance HAL de la radiodiffusion correspondante. Lorsqu'une session de tuner reçoit un rappel du HAL instance sur une mise à jour HAL, telles que les informations sur le programme actuel, la liste des programmes, les indicateurs de configuration et, les paramètres du fournisseur, les rappels concernant la mise à jour sont envoyés à tous les tuners radio associés au même module radio.

Radiodiffusion HAL

Pour en savoir plus sur les interfaces HIDL et AIDL de la radio hertzienne et sur les différences entre les deux, voir Interface HAL de broadcast Radio