ภาพรวม

สแต็กวิทยุกระจายเสียงประกอบด้วยคอมโพเนนต์ที่แสดงในรูปที่ 1

สถาปัตยกรรมของวิทยุกระจายเสียง
รูปที่ 1 สถาปัตยกรรมของวิทยุกระจายเสียง

แอปอ้างอิงวิทยุ

โปรดดูรายละเอียดเกี่ยวกับวิธีใช้การควบคุมด้วยคลื่นวิทยุที่หัวข้อการใช้งานการควบคุมด้วยคลื่นวิทยุ

ตัวอย่างแอปวิทยุ Java (packages/apps/Car/Radio) ใช้เป็นข้อมูลอ้างอิงสำหรับการใช้งาน เมื่อบริการแอปเริ่มทำงาน ระบบจะขอให้เครื่องมือจัดการวิทยุเปิดเครื่องรับวิทยุ จากนั้นแอปจะส่งคำขอไปยังตัวรับสัญญาณวิทยุได้ เช่น ปรับสถานีวิทยุ คลื่น หรือค้นหาสถานีวิทยุถัดไปที่พร้อมใช้งาน แอปจะได้รับการอัปเดตจากเครื่องมือจัดการวิทยุและตัวรับสัญญาณวิทยุในวิทยุ เช่น ข้อมูลรายการปัจจุบัน รายการวิทยุ การกำหนดค่า และพารามิเตอร์ที่ผู้ให้บริการกำหนด แอปวิทยุอ้างอิงรองรับเฉพาะวิทยุ AM และ FM OEM สามารถแก้ไขหรือแทนที่แอปวิทยุได้ตามต้องการ

เครื่องมือจัดการวิทยุ

เมื่อแอปขอให้ตัวจัดการวิทยุเปิดเครื่องรับสัญญาณ ตัวจัดการวิทยุ (frameworks/base/core/java/android/hardware/radio/RadioManager.java) จะส่งคําขอไปยังบริการวิทยุกระจายเสียง (BRS) ให้เปิดเซสชันเครื่องรับสัญญาณ จากนั้นจะรวมเซสชันไว้ในเครื่องรับสัญญาณวิทยุ (frameworks/base/core/java/android/hardware/radio/RadioTuner.java) ซึ่งจะแสดงผลในแอป เครื่องรับสัญญาณวิทยุจะกําหนด API (เช่น ปรับ เลื่อน และยกเลิก) ที่เรียกได้จากแอปวิทยุ และส่งคําขอไปยัง BRS เมธอดการเรียกกลับ (RadioTuner.Callback) ที่กําหนดไว้ใน Radio Radio Tuner จะส่งข้อมูลอัปเดตเกี่ยวกับ HAL ของวิทยุกระจายเสียง เช่น ข้อมูลรายการปัจจุบัน รายการวิทยุ และแอตทริบิวต์ที่กําหนดโดยผู้ให้บริการ จาก BRS ไปยังแอป

บริการวิทยุกระจายเสียง

บริการวิทยุกระจายเสียง (frameworks/base/services/core/java/com/android/server/broadcastradio) เป็นบริการไคลเอ็นต์สำหรับ HAL วิทยุกระจายเสียง BRS จะประสานงานกับเครื่องมือจัดการวิทยุหลายรายการกับ HAL ของวิทยุกระจายเสียง BRS รองรับ HAL interface definition language (HIDL) และ Android interface definition language (AIDL) broadcast radio HAL BRS จะลิงก์กับ AIDL HAL เมื่อมีบริการ AIDL HAL อยู่ มิเช่นนั้นบริการจะลิงก์กับ HIDL HAL BRS จะสร้าง Radio Module สำหรับอินสแตนซ์ HAL แต่ละรายการที่ใช้ได้ (เช่น AM, FM และ DAB)

เครื่องมือจัดการวิทยุแต่ละรายการสามารถขอให้ BRS สร้างเซสชันจูนเนอร์ในโมดูลวิทยุที่เกี่ยวข้องโดยอิงตามประเภทของวิทยุ เซสชันจูนแต่ละเซสชันสามารถเรียกใช้เมธอดต่างๆ เช่น ปรับ เลื่อน และยกเลิก (กำหนดไว้ในอินเทอร์เฟซ HAL) เพื่อดำเนินการกับอินสแตนซ์ HAL ของวิทยุกระจายเสียงที่เกี่ยวข้อง เมื่อเซสชันตัวรับสัญญาณ 1 รายการได้รับการเรียกกลับจากอินสแตนซ์ HAL เกี่ยวกับการอัปเดต HAL เช่น ข้อมูลโปรแกรมปัจจุบัน รายการโปรแกรม แฟล็กการกําหนดค่า และพารามิเตอร์ของผู้ให้บริการ ระบบจะส่งการเรียกกลับเกี่ยวกับการอัปเดตไปยังตัวรับสัญญาณวิทยุทั้งหมดที่ลิงก์กับโมดูลวิทยุเดียวกัน

ออกอากาศวิทยุ HAL

ดูข้อมูลเพิ่มเติมเกี่ยวกับอินเทอร์เฟซ HIDL และ AIDL ของวิทยุกระจายเสียงและความแตกต่างระหว่างอินเทอร์เฟซทั้งสองได้ที่อินเทอร์เฟซ HAL ของวิทยุกระจายเสียง