खास जानकारी

ब्रॉडकास्ट रेडियो स्टैक में, पहली इमेज में दिखाए गए कॉम्पोनेंट होते हैं.

ब्रॉडकास्ट रेडियो आर्किटेक्चर
पहली इमेज. ब्रॉडकास्ट रेडियो का आर्किटेक्चर.

रेडियो रेफ़रंस ऐप्लिकेशन

रेडियो कंट्रोल लागू करने के तरीके के बारे में जानकारी के लिए, रेडियो कंट्रोल लागू करना देखें.

Java रेडियो ऐप्लिकेशन (packages/apps/Car/Radio) का सैंपल, रेफ़रंस के तौर पर लागू किया जाता है. ऐप्लिकेशन सेवा शुरू होने पर, वह Radio Manager से रेडियो ट्यूनर खोलने का अनुरोध करता है. इसके बाद, ऐप्लिकेशन, रेडियो ट्यूनर को अनुरोध भेज सकता है. जैसे, किसी खास रेडियो स्टेशन या फ़्रीक्वेंसी पर ट्यून करना या अगला उपलब्ध रेडियो स्टेशन खोजना. इस ऐप्लिकेशन को रेडियो में रेडियो मैनेजर और रेडियो ट्यूनर से अपडेट मिलते हैं. जैसे, मौजूदा प्रोग्राम की जानकारी, रेडियो प्रोग्राम की सूचियां, कॉन्फ़िगरेशन, और वेंडर के तय किए गए पैरामीटर. रेफ़रंस रेडियो ऐप्लिकेशन सिर्फ़ एएम और एफ़एम रेडियो के साथ काम करता है. OEM, Radio ऐप्लिकेशन में अपनी पसंद के मुताबिक बदलाव कर सकते हैं या उसे बदल सकते हैं.

रेडियो मैनेजर

जब कोई ऐप्लिकेशन, रेडियो मैनेजर से ट्यूनर खोलने का अनुरोध करता है, तो रेडियो मैनेजर (frameworks/base/core/java/android/hardware/radio/RadioManager.java) ब्रॉडकास्ट रेडियो सेवा (बीआरएस) से ट्यूनर सेशन खोलने का अनुरोध करता है. इसके बाद, वह सेशन को रेडियो ट्यूनर (frameworks/base/core/java/android/hardware/radio/RadioTuner.java) में रैप करता है, जिसे ऐप्लिकेशन को दिखाया जाता है. रेडियो ट्यूनर, एपीआई तय करता है. जैसे, ट्यून, चरण, और रद्द करें. इन्हें रेडियो ऐप्लिकेशन से कॉल किया जा सकता है और बीआरएस को अनुरोध भेजे जा सकते हैं. रेडियो ट्यूनर में तय किए गए कॉलबैक तरीके (RadioTuner.Callback), ब्रॉडकास्ट रेडियो एचएएल के बारे में अपडेट भेजते हैं. जैसे, मौजूदा प्रोग्राम की जानकारी, प्रोग्राम की सूचियां, और वेंडर के तय किए गए पैरामीटर. ये अपडेट, बीआरएस से ऐप्लिकेशन को भेजे जाते हैं.

ब्रॉडकास्ट रेडियो सेवा

ब्रॉडकास्ट रेडियो सेवा (frameworks/base/services/core/java/com/android/server/broadcastradio), ब्रॉडकास्ट रेडियो एचएएल के लिए क्लाइंट सेवा है. बीआरएस, ब्रॉडकास्ट रेडियो एचएएल के साथ कई रेडियो मैनेजर को मैनेज करता है. बीआरएस, एचएएल इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एचआईडीएल) और Android इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एआईडीएल) ब्रॉडकास्ट रेडियो एचएएल के साथ काम करता है. जब कोई AIDL HAL सेवा मौजूद होती है, तो BRS, AIDL HAL से लिंक होता है; ऐसा न होने पर, सेवा HIDL HAL से लिंक होती है. बीआरएस, हर उपलब्ध एचएएल इंस्टेंस (जैसे, एएम, एफ़एम, और डीएबी) के लिए एक रेडियो मॉड्यूल बनाता है.

हर रेडियो मैनेजर, रेडियो के टाइप के आधार पर, रेडियो मॉड्यूल पर ट्यूनर सेशन बनाने के लिए, बीआरएस से अनुरोध कर सकता है. हर ट्यूनर सेशन, ब्रॉडकास्ट रेडियो के एचएएल इंस्टेंस पर कार्रवाइयां करने के लिए, ट्यून, चरण, और रद्द करें (एचएएल इंटरफ़ेस में तय किए गए) जैसे मेथड को कॉल कर सकता है. जब किसी ट्यूनर सेशन को HAL के अपडेट पर, HAL इंस्टेंस से कॉलबैक मिलता है, जैसे कि मौजूदा प्रोग्राम की जानकारी, प्रोग्राम की सूची, कॉन्फ़िगरेशन फ़्लैग, और वेंडर पैरामीटर, तो अपडेट के बारे में कॉलबैक, उसी रेडियो मॉड्यूल से जुड़े सभी रेडियो ट्यूनर को भेजे जाते हैं.

Broadcast Radio HAL

ब्रॉडकास्ट रेडियो के HIDL और AIDL इंटरफ़ेस और इन दोनों के बीच के अंतर के बारे में ज़्यादा जानने के लिए, ब्रॉडकास्ट रेडियो के एचएएल इंटरफ़ेस देखें.