Ringkasan

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

Arsitektur Radio Siaran
Gambar 1. Arsitektur Broadcast Radio.

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.