Stos komunikatów radiowych składa się z komponentów przedstawionych na Rysunku 1.
Aplikacja z informacjami o radiu
Szczegółowe informacje na temat wdrażania sterowania radiowego można znaleźć w sekcji Implementacja sterowania zdalnego.
Jako plik referencyjny służy przykładowa aplikacja radiowa w języku Java (packages/apps/Car/Radio
)
implementacji. Po uruchomieniu usługi aplikacji prosi ona menedżera radia o otwarcie tunera radiowego. Następnie:
aplikacja może wysyłać do tunera radiowe żądania dotyczące np. dostrajania do określonej stacji radiowej, częstotliwości
lub przewiń do następnej dostępnej stacji radiowej. Aplikacja otrzymuje aktualizacje z Menedżera radia oraz
Tuner radiowy, np. aktualne informacje o programie, listy programów, konfiguracje lub
parametrów zdefiniowanych przez dostawcę. Aplikacja Radio obsługuje tylko radio AM i FM. OEM może modyfikować lub
zastąp aplikację Radio zgodnie z potrzebami.
Menedżer radia
Gdy aplikacja poprosi Menedżera radia o otwarcie tunera, Menedżer radia
(frameworks/base/core/java/android/hardware/radio/RadioManager.java
) prosi o
Broadcast Radio Service (BRS), aby otworzyć sesję tunera, a następnie zamykać ją za pomocą tunera
(frameworks/base/core/java/android/hardware/radio/RadioTuner.java
), która jest zwracana,
do aplikacji.
Tuner radiowy definiuje interfejsy API (takie jak tune, step i cancel), które mogą być wywoływane z aplikacji radiowych
i wysyłać żądania do BRS. Metody wywołania zwrotnego (RadioTuner.Callback
) zdefiniowane w opcji Radio
Tuner wysyła aktualizacje dotyczące radiostacji HAL, takie jak aktualne informacje o programie, program
i parametry definiowane przez dostawcę, od BRS po aplikacje.
Nadawcza usługa radiowa
Usługa radiowa naziemnej
(frameworks/base/services/core/java/com/android/server/broadcastradio
) jest klientem
usługi Broadcast Radio HAL. BRS koordynuje działania wielu menedżerów radia w ramach funkcji Broadcast Radio
HAL. BRS obsługuje
Język definicji interfejsu HAL (HIDL) oraz
Transmisja języka definicji interfejsu Androida (AIDL)
radio HAL. BRS łączy się z HAL AIDL, gdy istnieje dowolna usługa AIDL HAL;
w przeciwnym razie usługa łączy się z 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 modułu radiowego w zależności od jego typu. Każda sesja dostrajania może wywoływać metody, takie jak jak dostrajanie, krok i anulowanie (zdefiniowane w interfejsach HAL) w celu wykonywania operacji na wystąpienie HAL radiowej transmisji radiowej. Gdy jedna sesja dostrajania otrzyma wywołanie zwrotne z HAL z instancji w aktualizacji HAL, takie jak informacje o bieżącym programie, lista programów, flagi konfiguracji dostawcy, wywołania zwrotne dotyczące aktualizacji są wysyłane do wszystkich tunerów radiowych połączonych z tym samym Moduł radiowy.
HAL radiowej transmisji na żywo
Więcej informacji o interfejsach HIDL i AIDL w radiostacji oraz różnicach między zwróć uwagę Interfejs HAL Radio.