Ringkasan

Stack radio siaran terdiri dari komponen yang diilustrasikan dalam Gambar 1.

Arsitektur Radio Siaran
Gambar 1. Arsitektur Radio Siaran.

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.