Stack radio siaran terdiri dari komponen yang diilustrasikan pada Gambar 1.
Aplikasi referensi radio
Untuk detail tentang cara mengimplementasikan kontrol radio, lihat Penerapan kontrol radio.
Contoh aplikasi radio Java (packages/apps/Car/Radio
) berfungsi sebagai referensi
terlepas dari implementasi layanan. Saat layanan aplikasi dimulai, layanan aplikasi akan meminta Pengelola Radio untuk membuka Radio Tuner. Lalu:
aplikasi dapat mengirim permintaan ke Radio Tuner, seperti menyetel ke stasiun radio tertentu, frekuensi,
atau mencari stasiun radio berikutnya yang tersedia. Aplikasi ini menerima pembaruan dari Pengelola Radio dan
Radio Tuner 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 memodifikasi atau
mengganti aplikasi Radio
seperti yang diinginkan.
Pengelola Radio
Saat aplikasi meminta Pengelola Radio untuk membuka tuner, Pengelola Radio
(frameworks/base/core/java/android/hardware/radio/RadioManager.java
) meminta
Broadcast Radio Service (BRS) untuk membuka sesi Tuner, lalu mengakhiri sesi di Radio Tuner
(frameworks/base/core/java/android/hardware/radio/RadioTuner.java
), yang ditampilkan
pada aplikasi.
Radio Tuner menentukan API (seperti nada, langkah, dan batalkan) yang dapat dipanggil dari aplikasi radio
dan mengirim permintaan ke BRS. Metode callback (RadioTuner.Callback
) yang ditentukan di Radio
Tuner mengirim pembaruan tentang HAL radio siaran, seperti informasi program saat ini,
daftar, dan parameter yang ditentukan vendor, dari BRS hingga aplikasi.
Layanan Radio Siaran
Layanan Radio Siaran
(frameworks/base/services/core/java/com/android/server/broadcastradio
) adalah klien
untuk {i>Broadcast Radio HAL<i}. BRS mengoordinasikan beberapa Pengelola Radio dengan Radio Siaran
HAL. BRS mendukung
Bahasa definisi antarmuka HAL (HIDL) dan
Siaran Bahasa definisi antarmuka Android (AIDL)
HAL radio. BRS terhubung ke AIDL HAL jika layanan AIDL HAL ada;
jika tidak, layanan akan terhubung
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 bisa memanggil metode, seperti sebagai tuning, step, dan cancel (ditentukan dalam antarmuka HAL) untuk melakukan operasi pada instance HAL radio siaran yang sesuai. Saat satu sesi tuner menerima callback dari HAL pada pembaruan HAL, seperti info program saat ini, daftar program, penanda konfigurasi, dan parameter vendor, callback tentang pembaruan dikirim ke semua Radio Tuner yang ditautkan ke Modul Radio.
Siaran Radio HAL
Untuk mempelajari lebih lanjut tentang antarmuka HIDL dan AIDL radio siaran dan perbedaan antara keduanya, lihat Antarmuka Broadcast Radio HAL.