Stack radio siaran terdiri dari komponen yang diilustrasikan dalam Gambar 1.
Aplikasi referensi radio
Untuk mengetahui detail tentang cara menerapkan kontrol radio, lihat Implementasi kontrol radio.
Contoh aplikasi radio Java (packages/apps/Car/Radio
) berfungsi sebagai implementasi
acuan. Saat dimulai, layanan aplikasi akan meminta Pengelola Radio untuk membuka Tuner Radio. Kemudian,
aplikasi dapat mengirim permintaan ke Tuner Radio, seperti menyetel ke stasiun radio, frekuensi,
atau mencari stasiun radio berikutnya yang tersedia. Aplikasi menerima update dari Pengelola Radio dan
Tuner Radio di Radio, seperti informasi program saat ini, daftar program radio, konfigurasi, dan
parameter yang ditentukan vendor. Aplikasi Radio referensi hanya mendukung radio AM dan FM. OEM dapat mengubah atau
mengganti aplikasi Radio sesuai keinginan.
Pengelola Radio
Saat aplikasi meminta Pengelola Radio untuk membuka tuner, Pengelola Radio
(frameworks/base/core/java/android/hardware/radio/RadioManager.java
) meminta
Layanan Radio Siaran (BRS) untuk membuka sesi Tuner, lalu menggabungkan sesi dalam Tuner Radio
(frameworks/base/core/java/android/hardware/radio/RadioTuner.java
), yang ditampilkan
ke aplikasi.
Tuner Radio menentukan API (seperti tune, step, dan cancel) yang dapat dipanggil dari aplikasi radio
dan mengirim permintaan ke BRS. Metode callback (RadioTuner.Callback
) yang ditentukan di Tuner
Radio mengirimkan update tentang HAL radio siaran, seperti informasi program saat ini, daftar
program, dan parameter yang ditentukan vendor, dari BRS ke aplikasi.
Layanan Radio Siaran
Layanan Radio Siaran
(frameworks/base/services/core/java/com/android/server/broadcastradio
) adalah layanan
klien untuk HAL Radio Siaran. BRS mengoordinasikan beberapa Pengelola Radio dengan HAL Radio
Broadcast. BRS mendukung
HAL interface definition language (HIDL) dan
Android interface definition language (AIDL) broadcast
radio HAL. BRS ditautkan ke AIDL HAL jika ada layanan AIDL HAL;
jika tidak, layanan akan ditautkan ke HIDL HAL. BRS membuat Modul Radio
untuk setiap instance HAL yang tersedia (seperti AM, FM, dan DAB).
Setiap Pengelola Radio dapat meminta BRS untuk membuat sesi tuner di Modul Radio yang sesuai, berdasarkan jenis radio. Setiap sesi tuner dapat memanggil metode, seperti tune, step, dan cancel (ditentukan di antarmuka HAL) untuk melakukan operasi pada instance HAL radio siaran yang sesuai. Saat satu sesi tuner menerima callback dari instance HAL pada update HAL, seperti info program saat ini, daftar program, flag konfigurasi, dan parameter vendor, callback tentang update akan dikirim ke semua Tuner Radio yang ditautkan ke Modul Radio yang sama.
HAL Radio Siaran
Untuk mempelajari lebih lanjut antarmuka HIDL dan AIDL dari radio siaran dan perbedaan antara keduanya, lihat Antarmuka HAL Radio Siaran.