इन सेक्शन में, ब्रॉडकास्ट रेडियो को लागू करने के लिए, हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) का इस्तेमाल करने का तरीका बताया गया है.
ब्रॉडकास्ट रेडियो एचएएल इंटरफ़ेस
ब्रॉडकास्ट रेडियो HAL, हार्डवेयर लेवल पर डेटा स्ट्रक्चर और इंटरफ़ेस उपलब्ध कराता है. इससे एएम/एफ़एम और डीएबी रेडियो जैसे ब्रॉडकास्ट रेडियो को लागू किया जा सकता है.
एचआईडीएल 2.0 और एआईडीएल इंटरफ़ेस
ब्रॉडकास्ट रेडियो एचएएल, यहां दिए गए इंटरफ़ेस का इस्तेमाल करता है.
IAnnouncementListener
IAnnouncementListener
, सूचना सुनने वाले व्यक्ति के लिए कॉलबैक इंटरफ़ेस है. इसे ब्रॉडकास्ट रेडियो एचएएल पर रजिस्टर किया जा सकता है, ताकि सूचनाएं मिल सकें. इंटरफ़ेस में ये तरीके मौजूद हैं:
IAnnouncementListener | ||
---|---|---|
ब्यौरा: इस फ़ंक्शन को तब कॉल किया जाता है, जब सूचनाओं की सूची में बदलाव होता है. | ||
HIDL 2.0 | oneway onListUpdated(vec<Announcement> announcements) |
|
एआईडीएल | oneway void onListUpdated(in Announcement[] announcements) |
ICloseHandle
ICloseHandle
एक सामान्य क्लोज़ हैंडल है. इसका इस्तेमाल, ऐसे कॉलबैक को हटाने के लिए किया जाता है जिसके लिए चालू इंटरफ़ेस की ज़रूरत नहीं होती.
ICloseHandle | ||
---|---|---|
ब्यौरा: हैंडल बंद करें. | ||
HIDL 2.0 | close() |
|
एआईडीएल | void close() |
ITunerCallback
ITunerCallback
एक कॉलबैक इंटरफ़ेस है. इसे ब्रॉडकास्ट रेडियो एचएएल, एचएएल क्लाइंट सेवा को अपडेट भेजने के लिए कॉल करता है.
ITunerCallback | ||
---|---|---|
ब्यौरा: इस फ़ंक्शन को एचएएल तब कॉल करता है, जब ट्यूनिंग ऑपरेशन (ट्यून, सीक (एआईडीएल में) या स्कैन (एचआईडीएल में) और स्टेप) एसिंक्रोनस तरीके से पूरा नहीं होता. | ||
HIDL 2.0 | oneway onCurrentProgramInfoChanged(ProgramInfo info) |
|
एआईडीएल | void onCurrentProgramInfoChanged(in ProgramInfo info) |
|
जानकारी: इस फ़ंक्शन को तब कॉल किया जाता है, जब ट्यून, सीक (एआईडीएल में) या स्कैन (एचआईडीएल में) या स्टेप पूरा हो जाता है. | ||
HIDL 2.0 | oneway onTuneFailed(Result result, ProgramSelector selector) |
|
एआईडीएल | void onTuneFailed(in Result result, in ProgramSelector selector) |
|
जानकारी: इस फ़ंक्शन को तब कॉल किया जाता है, जब ट्यून, सीक (एआईडीएल में) या स्कैन (एचआईडीएल में) या स्टेप पूरा हो जाता है. | ||
HIDL 2.0 | oneway onCurrentProgramInfoChanged(ProgramInfo info) |
|
एआईडीएल | void onCurrentProgramInfoChanged(in ProgramInfo info) |
|
ब्यौरा: प्रोग्राम की सूची अपडेट होने पर कॉल किया जाता है; हर चंक का साइज़ 500 केआईबी से ज़्यादा नहीं होना चाहिए. | ||
HIDL 2.0 | oneway onProgramListUpdated(ProgramListChunk chunk) |
|
एआईडीएल | void onProgramListUpdated(ProgramListChunk chunk) |
|
ब्यौरा: ऐंटेना कनेक्ट या डिसकनेक्ट होने पर इस फ़ंक्शन को कॉल किया जाता है. | ||
HIDL 2.0 | oneway onAntennaStateChange(bool connected) |
|
एआईडीएल | void onCurrentProgramInfoChanged(in ProgramInfo info) |
|
ब्यौरा: इस फ़ंक्शन को तब कॉल किया जाता है, जब वेंडर के हिसाब से तय किए गए पैरामीटर की वैल्यू, HAL में अंदरूनी तौर पर अपडेट की जाती हैं. HAL क्लाइंट के ज़रिए setParameters को कॉल करने के बाद, इसे लागू न करें. |
||
HIDL 2.0 | oneway onParametersUpdated(vec<VendorKeyValue> parameters) |
|
एआईडीएल | void onParametersUpdated(in VendorKeyValue[] parameters) |
|
ब्यौरा: एआईडीएल में नया. इस फ़ंक्शन को तब कॉल किया जाता है, जब कॉन्फ़िगरेशन फ़्लैग को एचएएल में अंदरूनी तौर पर अपडेट किया जाता है. इसे एचएएल क्लाइंट से setConfigFlag को कॉल करने के बाद लागू नहीं किया जाना चाहिए. |
||
HIDL 2.0 | लागू नहीं. | |
एआईडीएल | void onConfigFlagUpdated(in ConfigFlag flag, in boolean value) |
IBroadcastRadio
IBroadcastRadio
, ब्रॉडकास्ट रेडियो एचएएल के लिए प्राइमरी इंटरफ़ेस है. एचआईडीएल 2.0 एचएएल में, ट्यूनर को कॉल करने के लिए ITunerSession
इंटरफ़ेस का इस्तेमाल करें. हालांकि, एक समय में ज़्यादा से ज़्यादा एक ट्यूनर चालू होता है. ऐसा तब होता है, जब हर ब्रॉडकास्ट रेडियो एचएएल इंस्टेंस में सिर्फ़ एक ट्यूनर चिप हो.
ITunerSession
को AIDL इंटरफ़ेस से हटा दिया गया है. इसके इंटरफ़ेस को IBroadcastRadio
में ले जाया गया है.
IBroadcastRadio | ||
---|---|---|
ब्यौरा: किसी मॉड्यूल और उसकी क्षमताओं के बारे में जानकारी पाएं. | ||
HIDL 2.0 | getProperties() generates (Properties properties) |
|
एआईडीएल | Properties getProperties() |
|
ब्यौरा: यह मौजूदा या संभावित AM/FM रीजन कॉन्फ़िगरेशन को फ़ेच करता है. | ||
HIDL 2.0 | getAmFmRegionConfig(bool full) generates (Result result, AmFmRegionConfig
config) |
|
एआईडीएल | AmFmRegionConfig getAmFmRegionConfig(bool full) |
|
ब्यौरा: यह DAB क्षेत्र के मौजूदा कॉन्फ़िगरेशन को फ़ेच करता है. | ||
HIDL 2.0 | getDabRegionConfig() generates (Result result, vec<DabTableEntry>
config) |
|
एआईडीएल | DabTableEntry[] getDabRegionConfig() |
|
ब्यौरा: यह कुकी, रेडियो मॉड्यूल की कैश मेमोरी से इमेज को ऐक्सेस करती है. AIDL में, इमेज का साइज़ 1 एमबी से कम होना चाहिए. इसकी वजह यह है कि बाइंडर ट्रांज़ैक्शन बफ़र पर एक तय सीमा होती है. | ||
HIDL 2.0 | getImage(uint32_t id) generates (vec<uint8_t> image) |
|
एआईडीएल | byte[] getImage(in int id) |
|
जानकारी: यह कुकी, सूचना सुनने वाले व्यक्ति को रजिस्टर करती है. | ||
HIDL 2.0 | registerAnnouncementListener(vec<AnnouncementType>
enabled,IAnnouncementListener listener) generates (Result result, ICloseHandle
closeHandle) |
|
एआईडीएल | ICloseHandle registerAnnouncementListener(in IAnnouncementListener listener, in
AnnouncementType[] enabled) |
|
ब्यौरा:
|
||
HIDL 2.0 | openSession(ITunerCallback callback) जनरेट करता है
(Result result, ITunerSession session) |
|
एआईडीएल | void setTunerCallback(in ITunerCallback callback) |
|
ब्यौरा:
|
||
HIDL 2.0 | close() |
|
एआईडीएल | unsetTunerCallback() |
|
ब्यौरा: किसी तय किए गए प्रोग्राम पर ट्यून करता है. | ||
HIDL 2.0 | tune(ProgramSelector program) generates (Result result) |
|
एआईडीएल | void tune(in ProgramSelector program) |
|
जानकारी: यह एयर पर अगला मान्य प्रोग्राम ढूंढता है. AIDL में भ्रम से बचने के लिए,
scan का नाम बदलकर seek कर दिया गया है.
|
||
HIDL 2.0 | scan(bool directionUp, bool skipSubChannel) generates (Result result) |
|
एआईडीएल | void seek(in boolean directionUp, in boolean skipSubChannel) |
|
जानकारी: आस-पास के चैनल के लिए चरण. ऐसा हो सकता है कि इस चैनल पर कोई प्रोग्राम न चल रहा हो. | ||
HIDL 2.0 | step(bool directionUp) generates (Result result) |
|
एआईडीएल | void step(in boolean directionUp) |
|
ब्यौरा: यह फ़ंक्शन, ट्यून करने, स्कैन करने (एचआईडीएल में) या ढूंढने (एआईडीएल में) या स्टेप ऑपरेशन के लिए किए गए अनुरोधों को रद्द करता है. | ||
HIDL 2.0 | cancel() |
|
एआईडीएल | void cancel() |
|
ब्यौरा: यह प्रोग्राम की सूची पर फ़िल्टर लागू करता है. साथ ही, onProgramListUpdated कॉलबैक पर प्रोग्राम की सूची के अपडेट भेजना शुरू करता है. |
||
HIDL 2.0 | startProgramListUpdates(ProgramFilter filter) generates (Result result) |
|
एआईडीएल | void startProgramListUpdates(in ProgramFilter filter) |
|
ब्यौरा: इससे प्रोग्राम की सूची के अपडेट भेजने बंद हो जाते हैं. | ||
HIDL 2.0 | stopProgramListUpdates() |
|
एआईडीएल | void stopProgramListUpdates() |
|
ब्यौरा: यह फ़ंक्शन, दिए गए कॉन्फ़िगरेशन फ़्लैग की मौजूदा सेटिंग को फ़ेच करता है. | ||
HIDL 2.0 | isConfigFlagSet(ConfigFlag flag) generates (Result result, bool value) |
|
एआईडीएल | boolean isConfigFlagSet(in ConfigFlag flag) |
|
ब्यौरा: यह फ़ंक्शन, दिए गए कॉन्फ़िगरेशन फ़्लैग को सेट करता है. | ||
HIDL 2.0 | setConfigFlag(ConfigFlag flag, bool value) generates (Result result) |
|
एआईडीएल | void setConfigFlag(in ConfigFlag flag, boolean value) |
|
ब्यौरा: यह कुकी, वेंडर के हिसाब से पैरामीटर वैल्यू सेट करती है. | ||
HIDL 2.0 | setParameters(vec<VendorKeyValue> parameters)
जनरेट करता है, (vec<VendorKeyValue> results) |
|
एआईडीएल | VendorKeyValue[] setParameters(in VendorKeyValue[] parameters) |
|
ब्यौरा: यह कुकी, वेंडर के हिसाब से पैरामीटर की वैल्यू वापस लाती है. | ||
HIDL 2.0 | getParameters(vec<string> keys) generates (vec<VendorKeyValue>
parameters) |
|
एआईडीएल | VendorKeyValue[] getParameters(in String[] keys) |
इंटरफ़ेस के बारे में साफ़ तौर पर दी गई जानकारी
एसिंक्रोनस व्यवहार
हर ट्यूनिंग ऑपरेशन (जैसे, ट्यून करना, स्कैन करना (HIDL में) या ढूंढना (AIDL में) और स्टेप) में समय लग सकता है. साथ ही, थ्रेड को लंबे समय तक ब्लॉक नहीं किया जाना चाहिए. इसलिए, ऑपरेशन को समय लेने वाले ऑपरेशन को बाद में होने के लिए शेड्यूल करना चाहिए और तुरंत स्टेटस या नतीजा दिखाना चाहिए. ज़्यादा जानकारी के लिए, हर ऑपरेशन में यह होना चाहिए:
- ट्यूनिंग की सभी लंबित कार्रवाइयां रद्द करें.
- यह जांच करता है कि ट्यूनर के स्टेटस और तरीके के इनपुट के आधार पर, ऑपरेशन को प्रोसेस किया जा सकता है या नहीं.
- ट्यूनिंग टास्क को शेड्यूल करें. इसके बाद,
Result
(एचआईडीएल में) याstatus
(एआईडीएल में) को तुरंत वापस करें. अगरResult
याstatus
OK
है, तो ट्यूनर कॉलबैकtuneFailed
याcurrentProgramInfoChanged
को तब कॉल किया जाना चाहिए, जब ट्यूनिंग का टास्क पूरा हो गया हो या पूरा न हो पाया हो. उदाहरण के लिए, टाइम आउट की वजह से.
इसी तरह, startProgramListUpdates
भी प्रोग्राम की सूची को अपडेट करने के लिए, ज़्यादा समय लेने वाले टास्क को बाद में शेड्यूल करता है, ताकि स्टेटस या नतीजे को तुरंत दिखाया जा सके. यह तरीका, अपडेट करने के लंबित अनुरोधों को पहले रद्द करता है. इसके बाद, अपडेट करने के टास्क को शेड्यूल करता है और तुरंत नतीजे दिखाता है.
रेस कंडीशन
ट्यूनिंग की कार्रवाइयों (जैसे, ट्यून करना, स्कैन करना (HIDL में) या ढूंढना (AIDL में) और स्टेप) के एसिंक्रोनस व्यवहार की वजह से, कार्रवाई को रद्द करने और ट्यूनिंग की कार्रवाइयों के बीच रेस कंडीशन होती है. अगर HAL के ट्यूनिंग ऑपरेशन पूरा करने के बाद और कॉलबैक पूरा होने से पहले cancel
को कॉल किया जाता है, तो रद्द करने के अनुरोध को अनदेखा किया जा सकता है. साथ ही, कॉलबैक को पूरा होना चाहिए और HAL क्लाइंट को मिलना चाहिए.
इसी तरह, अगर HAL, प्रोग्राम की सूची को अपडेट करने की प्रोसेस पूरी कर लेता है और onCurrentProgramInfoChanged
कॉलबैक पूरा होने से पहले stopProgramListUpdates
को कॉल किया जाता है, तो stopProgramListUpdates
को अनदेखा किया जा सकता है और कॉलबैक पूरा होना चाहिए.
डेटा के साइज़ की सीमा
बाइंडर ट्रांज़ैक्शन बफ़र की सीमा तय होती है. इसलिए, एआईडीएल एचएएल में कुछ इंटरफ़ेस के तरीकों के लिए डेटा की सीमा तय की गई है. ये तरीके, बड़े साइज़ का डेटा पास करते हैं.
getImage
के लिए, 1 एमबी से कम साइज़ वाली इमेज की ज़रूरत होती है.onProgramListUpdate
के लिए, हरchunk
का साइज़ 500 केआईबी से कम होना चाहिए. प्रोग्राम की बड़ी सूचियों को HAL, कई हिस्सों में बांटता है. इसके बाद, उन्हें कई कॉलबैक के ज़रिए भेजता है.
AIDL HAL के डेटा स्ट्रक्चर में बदलाव
इंटरफ़ेस में बदलाव के साथ-साथ, ये बदलाव ब्रॉडकास्ट रेडियो एआईडीएल एचएएल में तय किए गए डेटा स्ट्रक्चर पर भी लागू किए गए हैं. यह एआईडीएल का फ़ायदा लेता है.
Constant
enum को एआईडीएल से हटा दिया गया है और इसेIBroadcastRadio
में const int के तौर पर तय किया गया है. इस दौरान,ANTENNA_DISCONNECTED_TIMEOUT_MS
का नाम बदलकरANTENNA_STATE_CHANGE_TIMEOUT_MS
कर दिया जाता है. नया const intTUNER_TIMEOUT_MS
जोड़ा गया है. ट्यून करने, खोजने, और आगे बढ़ने की सभी कार्रवाइयां, इस समयावधि में पूरी होनी चाहिए.- एआईडीएल में Enum
RDS
औरDeemphasis
को हटा दिया गया है. साथ ही,AmFmRegionConfig
में इन्हें const int के तौर पर तय किया गया है. इसी तरह,ProgramInfo
में मौजूदfmDeemphasis
औरfmRds
, दोनों को int के तौर पर दिखाया गया है. यह संबंधित फ़्लैग के बिट कंप्यूटेशन का नतीजा है. इस दौरान,D50
औरD75
का नाम बदलकरDEEMPHASIS_D50
औरDEEMPHASIS_D75
कर दिया जाता है. - एआईडीएल में Enum
ProgramInfoFlags
हटा दिए गए हैं. इन्हेंProgramInfo
में const int के तौर पर तय किया गया है. साथ ही, इनमेंFLAG_
प्रीफ़िक्स जोड़ा गया है. इसी तरह,infoFlags
मेंProgramInfo
को int के तौर पर घोषित किया गया है. यह फ़्लैग के बिट कंप्यूटेशन का नतीजा है.TUNED
का नाम बदलकरFLAG_TUNABLE
कर दिया गया है, ताकि इसकी परिभाषा को बेहतर तरीके से बताया जा सके. इस परिभाषा के मुताबिक, स्टेशन को ट्यून किया जा सकता है. AmFmBandRange
में,scanSpacing
का नाम बदलकरseekSpacing
कर दिया गया है, क्योंकि एआईडीएल मेंscan
का नाम बदलकरseek
कर दिया गया है.- एआईडीएल में यूनियन का कॉन्सेप्ट पेश किया गया है. इसलिए, एचआईडीएल एचएएल में तय किए गए
MetadataKey
औरMetadata
का इस्तेमाल अब नहीं किया जाता. एआईडीएल यूनियनMetadata
को एआईडीएल एचएएल में तय किया जाता है.MetadataKey
में मौजूद हर enum वैल्यू, अबMetadata
में एक फ़ील्ड है. इसकी टाइप स्ट्रिंग या int होती है. यह इस बात पर निर्भर करता है कि उनकी परिभाषाएं क्या हैं.
DAB रेडियो की सुविधा
इस सेक्शन में, DAB रेडियो की सुविधा के बारे में बताया गया है.
आइडेंटिफ़ायर
AIDL Broadcast Radio HAL में DAB और DMB रेडियो के लिए, प्राइमरी आइडेंटिफ़ायर टाइप DAB_SID_EXT
है. DAB_SID_EXT
32-बिट वाले सर्विस आइडेंटिफ़ायर (एसआईडी) का इस्तेमाल करता है, ताकि यह DAB और DMB रेडियो, दोनों के एसआईडी को दिखा सके.
मुख्य आइडेंटिफ़ायर के अलावा, DAB_ENSEMBLE
और DAB_FREQUENCY_KHZ
जैसे सेकंडरी आइडेंटिफ़ायर भी इस्तेमाल किए जा सकते हैं. यह इसलिए ज़रूरी है, क्योंकि कई DAB स्टेशन अलग-अलग DAB_ENSEMBLE
या DAB_FREQUENCY_KHZ
वैल्यू के साथ, एक DAB_SID_EXT
शेयर कर सकते हैं. प्रोग्राम की सूची को सटीक तरीके से अपडेट करने के लिए, एक ही DAB_SID_EXT
वाले स्टेशनों को ITunerCallback#onProgramListUpdated
का इस्तेमाल करके एक साथ अपडेट किया जाता है. इसके बाद, इस अपडेट को ब्रॉडकास्ट रेडियो सेवा और रेडियो मैनेजर को भेजा जाता है. आखिर में, इसे android.hardware.radio.ProgramList
के ज़रिए रेडियो ऐप्लिकेशन को भेजा जाता है.
मेटाडेटा
यहां दी गई टेबल में, AIDL Broadcast Radio HAL में DAB के लिए काम करने वाला मेटाडेटा दिखाया गया है:
मेटाडेटा फ़ील्ड | ब्यौरा |
---|---|
dabEnsembleName (संक्षिप्त रूप: dabEnsembleNameShort ) |
डीएबी स्टेशन के एन्सेम्बल का नाम |
dabServiceName (dabServiceNameShort का छोटा किया गया रूप) |
DAB स्टेशन की सेवा का नाम |
dabComponentName (dabComponentNameShort का छोटा किया गया रूप) |
DAB स्टेशन के कॉम्पोनेंट का नाम |
HD रेडियो की सुविधा
इस सेक्शन में, एचडी रेडियो सपोर्ट के बारे में बताया गया है.
आइडेंटिफ़ायर
HD_STATION_ID_EXT
, एचडी रेडियो स्टेशनों के लिए प्राइमरी आइडेंटिफ़ायर के तौर पर काम करता है. स्टेशन की पहचान को और बेहतर बनाने के लिए, HD_STATION_NAME
और HD_STATION_LOCATION
जैसे सेकंडरी आइडेंटिफ़ायर भी दिए जाते हैं. HD_STATION_LOCATION
को Android 15 में पेश किया गया था. यह जगह की जानकारी देता है.
डिजिटल रेडियो की सुविधा चालू या बंद करना
Android 15 से, डिजिटल रेडियो (जैसे कि एचडी रेडियो) को चालू या बंद किया जा सकता है. इसके लिए, आपको ConfigFlag
को अडजस्ट करना होगा. एफ़एम रेडियो के लिए इस सेटिंग को कंट्रोल करने के लिए, FORCE_ANALOG_FM
फ़्लैग का इस्तेमाल करें. एएम रेडियो के लिए, FORCE_ANALOG_AM
फ़्लैग का इस्तेमाल करें.
फ़्लैग को false
पर सेट करने से एचडी रेडियो चालू हो जाता है. वहीं, इसे true
पर सेट करने से, ऐनलॉग एएम/एफ़एम रेडियो चालू हो जाता है.
एचडी चैनल उपलब्ध हैं
Android 15 से, एचडी रेडियो स्टेशन के लिए फ़िलहाल उपलब्ध एचडी चैनलों को 8 बिट के बिट मास्क, Metadata#hdSubChannelsAvailable
, में दिखाया जा सकता है.ProgramInfo.metadata
उदाहरण के लिए, बाईं ओर से पहले बिट की वैल्यू यह दिखाती है कि इस एचडी स्टेशन के लिए HD2 सबचैनल उपलब्ध है या नहीं.
सिग्नल हासिल करने की स्थिति
Android 15 और इसके बाद के वर्शन में, रेडियो ऐप्लिकेशन उपयोगकर्ताओं को एचडी रेडियो स्टेशनों के सिग्नल मिलने की स्थिति दिखा सकते हैं. इससे मदद मिलती है, क्योंकि एचडी क्वालिटी का सिग्नल मिलने में कभी-कभी कुछ समय लग सकता है.
यह जानकारी देने के लिए, सिस्टम ProgramInfo.infoFlags
का इस्तेमाल करके स्टेटस को ट्रैक करता है. साथ ही, ITunerCallback#onCurrentProgramInfoChanged.
के ज़रिए रेडियो ऐप्लिकेशन को अपडेट करता है
ProgramInfo.infoFlags
में स्टेटस को इस तरह दिखाया जाता है:
- छठा बिट: इससे पता चलता है कि एचडी रेडियो सिग्नल मिल गया है या नहीं.
- बिट 7: इससे पता चलता है कि स्टेशन की जानकारी देने वाली सेवा (एसआईएस) का डेटा उपलब्ध है या नहीं. एसआईएस, स्टेशन और उस पर चल रहे कॉन्टेंट के बारे में ज़्यादा जानकारी देता है.
- बिट 8: इससे पता चलता है कि एचडी डिजिटल ऑडियो उपलब्ध है या नहीं.
मेटाडेटा
इस टेबल में, Android 15 और इसके बाद के वर्शन के लिए, एचडी रेडियो मेटाडेटा की सुविधा के बारे में बताया गया है.
मेटाडेटा फ़ील्ड | ब्यौरा |
---|---|
commentShortDescription |
टिप्पणी के बारे में कम शब्दों में जानकारी |
commentActualText |
टिप्पणी का टेक्स्ट |
commercial |
रेडियो कमर्शियल |
ufids |
कॉन्टेंट से जुड़े यूनीक फ़ाइल आइडेंटिफ़ायर (यूएफ़आईडी) |
hdStationNameShort |
एचडी रेडियो स्टेशन का छोटा नाम या यूनिवर्सल शॉर्ट नेम |
hdStationNameLong |
एचडी रेडियो स्टेशन का पूरा नाम, स्लोगन या स्टेशन से मिला कोई मैसेज. |
आपातकालीन स्थितियों के लिए चेतावनियां
Android 15 और इसके बाद के वर्शन में, एचडी रेडियो स्टेशनों के लिए आपातकालीन सूचनाएं पाने की सुविधा उपलब्ध है. इससे रेडियो स्टेशन से भेजी गई आपातकालीन सूचनाओं के बारे में, रेडियो ऐप्लिकेशन इस्तेमाल करने वाले लोगों को जानकारी दी जा सकती है.
आपातकालीन सूचना (Alert
), कॉमन अलर्टिंग प्रोटोकॉल (सीएपी) 1.2 स्टैंडर्ड के मुताबिक होती है. साथ ही, यह नीचे दी गई टेबल में दिखाई गई सूचनाओं के साथ काम करती है:
सूचना के बारे में जानकारी | ब्यौरा | ईनम वैल्यू उपलब्ध हैं |
---|---|---|
AlertStatus |
सूचना वाले मैसेज की स्थिति | ACTUAL , EXERCISE , TEST |
AlertMessageType |
आपातकालीन अलर्ट के मैसेज का टाइप | ALERT , UPDATE , CANCEL |
AlertCategory |
आपातकालीन स्थिति की चेतावनी के मैसेज के विषय इवेंट की कैटगरी | GEO , MET , SAFETY , SECURITY ,
RESCUE , FIRE , HEALTH , ENV ,
TRANSPORT , INFRA , CBRNE , OTHER |
AlertUrgency |
आपातकालीन स्थिति की चेतावनी के मैसेज में बताए गए विषय की गंभीरता | IMMEDIATE , EXPECTED , FUTURE , PAST , UNKNOWN |
AlertSeverity |
आपातकालीन स्थिति की चेतावनी के मैसेज में बताए गए इवेंट की गंभीरता | EXTREME , SEVERE , MODERATE , MINOR , UNKNOWN |
AlertCertainty |
आपातकालीन स्थिति की चेतावनी के मैसेज में बताए गए विषय से जुड़े इवेंट की संभावना | OBSERVED , LIKELY , POSSIBLE , UNLIKELY , UNKNOWN |
Alert
(जिसमें टेबल में दी गई जानकारी शामिल होती है), सूचना वाले टेक्स्ट मैसेज, और AlertArea
का इस्तेमाल किया जा सकता है.
Alert
, ProgramInfo
में मौजूद एक वैकल्पिक फ़ील्ड है. इसलिए, इसे Broadcast Radio HAL से रेडियो ऐप्लिकेशन पर भेजा जा सकता है. इसके लिए, ट्यूनर कॉलबैक का इस्तेमाल किया जाता है. इससे मौजूदा प्रोग्राम की जानकारी और प्रोग्राम की सूची के अपडेट मिलते हैं.