Przegląd

Elementy infrastruktury radia nadawczego to komponenty pokazane na rysunku 1.

Architektura radia nadawczego
Rysunek 1. Architektura radia nadawczego.

Aplikacja z materiałami źródłowymi dotyczącymi radia

Szczegółowe informacje o implementacji sterowania radiowego znajdziesz w artykule Implementacja sterowania radiowego.

Przykładowa aplikacja radiowa w języku Java (packages/apps/Car/Radio) służy jako implementacja referencyjna. Po uruchomieniu usługi aplikacji ta prosi menedżera radia o otwarcie tunera radiowego. Następnie aplikacja może wysyłać do Radio Tunera żądania, takie jak strojenie konkretnej stacji radiowej, częstotliwości lub następnej dostępnej stacji radiowej. Aplikacja otrzymuje aktualizacje z Menedżera radia i Radio Tunera w aplikacji Radio, takie jak bieżące informacje o programie, listy programów radiowych, konfiguracje i parametry zdefiniowane przez dostawcę. Aplikacja Radio obsługuje tylko radio AM i FM. Producenci OEM mogą zmodyfikować lub zastąpić aplikację Radio.

Menedżer radia

Gdy aplikacja poprosi Menedżera radia o otwarcie tunera, Menedżer radia (frameworks/base/core/java/android/hardware/radio/RadioManager.java) poprosi Usługę radia z nadawaniem (BRS) o otwarcie sesji tunera, a potem skonfiguruje sesję w Tunerze radia (frameworks/base/core/java/android/hardware/radio/RadioTuner.java), który zostanie zwrócony do aplikacji. Tuner radia definiuje interfejsy API (takie jak tune, step i cancel), które można wywoływać z aplikacji radiowych, oraz wysyła żądania do BRS. Metody wywołania zwrotnego (RadioTuner.Callback) zdefiniowane w Radio Tuner wysyłają do aplikacji informacje o interfejsie HAL radia DAB, takie jak bieżące informacje o programie, listy programów i parametry zdefiniowane przez dostawcę.

Usługa radia nadawczego

Usługa radia nadawczego (frameworks/base/services/core/java/com/android/server/broadcastradio) jest usługą klienta dla interfejsu HAL radia nadawczego. BRS koordynuje działanie wielu menedżerów radiowych z HAL-ami radiowymi. BRS obsługuje interfejsy HAL (HIDL) i radio Androida (AIDL). BRS łączy się z interfejsem HAL AIDL, jeśli istnieje jakakolwiek usługa interfejsu HAL AIDL; w przeciwnym razie usługa łączy się z interfejsem HAL HIDL. BRS tworzy moduł radiowy dla każdej dostępnej instancji HAL (np. AM, FM i DAB).

Każdy menedżer radia może poprosić BRS o utworzenie sesji tunera w odpowiednim module radia na podstawie typu radia. Każda sesja tunera może wywoływać metody takie jak tune, step i cancel (zdefiniowane w interfejsach HAL) w celu wykonywania operacji na odpowiednim wystąpieniu interfejsu HAL radia nadawczego. Gdy jedna sesja tunera otrzyma wywołanie zwrotne od instancji HAL dotyczące aktualizacji HAL, takie jak bieżące informacje o programie, lista programów, flagi konfiguracji i parametry dostawcy, wywołania zwrotne dotyczące aktualizacji są wysyłane do wszystkich tunerów radiowych powiązanych z tym samym modułem radiowym.

Broadcast Radio HAL

Więcej informacji o interfejsach HIDL i AIDL radia nadawczego oraz różnicach między nimi znajdziesz w artykule Interfejs HAL radia nadawczego.