Descripción general

La pila de radio de transmisión consta de los componentes ilustrados en la Figura 1.

Arquitectura de la radio de transmisión
Figura 1: Arquitectura de la radio de emisión

App de referencia de radio

Para obtener detalles sobre cómo implementar el control de radio, consulta Implementación del control de radio.

Una app de radio de Java de ejemplo (packages/apps/Car/Radio) funciona como referencia. para implementarlos. Cuando se inicia el servicio de la app, solicita Radio Manager que abra un sintonizador de radio. Luego, la aplicación puede enviar solicitudes al sintonizador de radio, como sintonizar una estación de radio específica, la frecuencia, o para buscar la siguiente estación de radio disponible. La aplicación recibe actualizaciones de Radio Manager y Sintonizador de radio en radio, como información de programas actuales, listas de programas de radio, configuraciones y parámetros definidos por el proveedor. La app de Radio de referencia solo es compatible con la radio AM y FM. Los OEM pueden modificar o reemplaza la app de Radio como desees.

Administrador de radio

Cuando la app solicita que Radio Manager abra un sintonizador, el Administrador de radio (frameworks/base/core/java/android/hardware/radio/RadioManager.java) solicita la Broadcast Radio Service (BRS) para abrir una sesión de sintonizador y, luego, concluir la sesión en un sintonizador de radio (frameworks/base/core/java/android/hardware/radio/RadioTuner.java), que se devuelve a la app. Radio Tuner define las APIs (como tune, step y cancel) a las que se puede llamar desde apps de radio. y envía solicitudes a BRS. Métodos de devolución de llamada (RadioTuner.Callback) definidos en Radio El sintonizador envía actualizaciones sobre la HAL de la radio de transmisión, como la información del programa actual, listas de clientes y parámetros definidos por el proveedor, desde el BRS hasta las aplicaciones.

Servicio de transmisión de radio

Servicio de Radiodifusión (frameworks/base/services/core/java/com/android/server/broadcastradio) es el cliente para la HAL de transmisión de radio. La BRS coordina a múltiples gerentes de radio con Broadcast Radio. HAL. BRS admite Lenguaje de definición de la interfaz HAL (HIDL) y Transmisión del lenguaje de definición de la interfaz de Android (AIDL) HAL de radio. El BRS se vincula a la HAL del AIDL cuando existe algún servicio de HAL del AIDL. de lo contrario, el servicio se vinculará con la HAL del HIDL. BRS crea un módulo de radio para cada instancia de HAL disponible (como AM, FM y DAB).

Cada administrador de radio puede solicitar al BRS que cree una sesión de sintonizador en el módulo de radio correspondiente, según el tipo de radio. Cada sesión de sintonizador puede llamar a métodos, como como ajustar, escalones y cancelar (definidos en las interfaces de HAL) para realizar operaciones en la instancia de HAL de radio de transmisión correspondiente. Cuando una sesión de sintonizador recibe una devolución de llamada de la HAL en una actualización de HAL, como la información del programa actual, la lista de programas, las marcas de configuración parámetros del proveedor, las devoluciones de llamada sobre la actualización se envían a todos los sintonizadores de radio vinculados al mismo Módulo de radio.

Transmisión de radio HAL

Para obtener más información sobre las interfaces HIDL y AIDL de la radio abierta y las diferencias entre los dos, consulta Interfaz de la HAL de radio de transmisión