Elementy infrastruktury radia nadawczego to komponenty pokazane na rysunku 1.
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.