ब्रॉडकास्ट रेडियो एचएएल

इन सेक्शन में, ब्रॉडकास्ट रेडियो को लागू करने के लिए, हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) का इस्तेमाल करने का तरीका बताया गया है.

ब्रॉडकास्ट रेडियो एचएएल इंटरफ़ेस

ब्रॉडकास्ट रेडियो 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 HAL: जब नया ट्यूनर सेशन खोला जाता है, तो पुराने सेशन को बंद करना ज़रूरी है.
  • एआईडीएल एचएएल: कोई ट्यूनर सेशन उपलब्ध न होने की वजह से, सिर्फ़ ट्यूनर कॉलबैक सेट करना होगा. अगर यह मौजूद है, तो पुराने कॉलबैक को अनसेट किया जाना चाहिए.
HIDL 2.0 openSession(ITunerCallback callback) जनरेट करता है (Result result, ITunerSession session)
एआईडीएल void setTunerCallback(in ITunerCallback callback)
ब्यौरा:
  • HIDL HAL: ट्यूनर सेशन बंद करने में कोई गड़बड़ी नहीं होनी चाहिए. साथ ही, इसे सिर्फ़ एक बार जारी किया जाना चाहिए.
  • एआईडीएल एचएएल: इसमें कोई ट्यूनर नहीं होता है. सिर्फ़ ट्यूनर कॉलबैक को अनसेट करना होता है.
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 int TUNER_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 से रेडियो ऐप्लिकेशन पर भेजा जा सकता है. इसके लिए, ट्यूनर कॉलबैक का इस्तेमाल किया जाता है. इससे मौजूदा प्रोग्राम की जानकारी और प्रोग्राम की सूची के अपडेट मिलते हैं.