CellBroadcast मॉड्यूल की मदद से, OEM को बार-बार एक ही काम करने की ज़रूरत नहीं पड़ती. इससे Android नेटवर्क पर काम करने वाले डिवाइसों के बीच फ़्रैगमेंटेशन कम होता है और असली उपयोगकर्ताओं को एक जैसा अनुभव मिलता है. साथ ही, CellBroadcast से जुड़ी ज़रूरी शर्तों के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी की जांच और सर्टिफ़िकेट पाने की प्रोसेस को आसान बनाने में भी मदद मिलती है. ऐसा इसलिए, क्योंकि OEM को कोड में बदलाव करने की अनुमति नहीं होती. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि Android रिलीज़ के सामान्य साइकल के बाहर, इसकी सुविधाओं को अपडेट किया जा सकता है.
पैकेज का फ़ॉर्मैट
CellBroadcast मॉड्यूल में ये सेवा और ऐप्लिकेशन शामिल हैं.
CellBroadcastService सेवा, CellBroadcast मैसेज को डिकोड करने, वायरलेस इमरजेंसी अलर्ट (डब्ल्यूईए) 3.0 के लिए जियोफ़ेंसिंग, मैसेज के डुप्लीकेट वर्शन की जांच करने, और ऐप्लिकेशन पर मैसेज ब्रॉडकास्ट करने की सुविधा देती है. यह एक से कई लोगों को मैसेज भेजने की सेवा है. इसमें, मैसेज को भौगोलिक तौर पर टारगेट किया जाता है और मैसेज पाने वाले लोगों के लिए, भौगोलिक तौर पर सीमाएं तय की जाती हैं. इस सेवा को इस तरह से डिज़ाइन किया गया है कि एक तय किए गए इलाके में, एक ही समय पर कई मोबाइल फ़ोन उपयोगकर्ताओं को मैसेज भेजा जा सके. इस सेवा को ETSI जीएसएम कमिटी और 3GPP ने तय किया है. यह टेलीकम्यूनिकेशन स्टैंडर्ड का हिस्सा है.
CellBroadcastReceiver ऐप्लिकेशन, डिफ़ॉल्ट सिस्टम ऐप्लिकेशन है. यह आपातकालीन और सामान्य सूचनाओं (जैसे, ऐंबर और राष्ट्रपति की सूचनाएं) को मैनेज करता है. साथ ही, मोबाइल और इंटरनेट सेवा देने वाली कंपनी और क्षेत्रीय नियमों के आधार पर, उपयोगकर्ताओं को जानकारी दिखाता है.
सेल ब्रॉडकास्ट (CBC) मैसेज का फ़्लो
इस इलस्ट्रेशन में, CellBroadcast मैसेज फ़्लो दिखाया गया है.
पहला डायग्राम. CellBroadcastReceiver मैसेज फ़्लो
रेडियो इंटरफ़ेस लेयर (RIL)
InBoundSMSHandler
को CNAME/GSMCellBroadcast SMS के बारे में सूचित करता है.फ़्रेमवर्क, सेल ब्रॉडकास्ट (CBC) एसएमएस को CBS मॉड्यूल पर फ़ॉरवर्ड करता है, ताकि आने वाले मैसेज को पार्स और प्रोसेस किया जा सके.
मैसेज प्रोसेस होने के बाद, CellBroadcastService, इंटेंट को सिस्टम के डिफ़ॉल्ट CellBroadcastReceiver ऐप्लिकेशन पर फ़ॉरवर्ड करता है.
CellBroadcastReceiver ऐप्लिकेशन उपयोगकर्ता को मैसेज दिखाता है.
मॉड्यूल फ़ॉर्मैट
CellBroadcastService और CellBroadcastReceiver ऐप्लिकेशन को एक ही APEX फ़ाइल
(com.android.cellbroadcast
) में शामिल किया गया है जो
Android 11 या उसके बाद के वर्शन पर चलने वाले
डिवाइसों के लिए उपलब्ध है. इस मॉड्यूल में package/app/CellBroadcastReceiver
में कोड शामिल होता है और मौजूदा फ़्रेमवर्क क्लास को packages/modules/CellBroadcastService
पर माइग्रेट करता है.
मॉड्यूल डिपेंडेंसी
CellBroadcast मॉड्यूल, फ़्रेमवर्क के साथ सिर्फ़ स्थिर @SystemApi
(@hide
एपीआई नहीं) का इस्तेमाल करके इंटरैक्ट करता है. साथ ही, यह इन स्टैटिक लाइब्रेरी पर निर्भर करता है.
Androidx.legacy_legacy-support-v13
Androidx.recyclerview_recyclerview
Androidx.preference_preference
androidx.legacy_legacy-preference-v14
androidx.appcompat_appcompat
रनटाइम रिसॉर्स ओवरले (आरआरओ) का इस्तेमाल करके, कॉन्फ़िगरेशन को पसंद के मुताबिक बनाया जा सकता है.
अनुमति का कॉन्फ़िगरेशन
CellBroadcast मॉड्यूल को प्लैटफ़ॉर्म के हस्ताक्षर के बजाय, Google के हस्ताक्षर से साइन किया जाता है. इसका मतलब है कि मॉड्यूल के पास हस्ताक्षर की अनुमतियों का ऐक्सेस नहीं होता.
इसके बजाय, Android 11 में CellBroadcast मॉड्यूल में, साइन करने की नई अनुमति com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY
को तय किया गया है. इस अनुमति को सिर्फ़ मॉड्यूल में मौजूद पैकेज ही पा सकते हैं, क्योंकि इन पैकेज को एक ही कुंजी से साइन किया गया है. इस अनुमति की मदद से,
CellBroadcastReceiver ऐप्लिकेशन को
CellBroadcastService में मौजूद डेटाबेस का पूरा ऐक्सेस मिलता है.
प्लैटफ़ॉर्म, डिफ़ॉल्ट सिस्टम एसएमएस ऐप्लिकेशन को android.permission.READ_CELL_BROADCASTS
रनटाइम अनुमति देता है, ताकि वह आपातकालीन चेतावनियों का इतिहास ऐक्सेस कर सके.
CellBroadcast मॉड्यूल को इंटिग्रेट करें
इस सेक्शन में, CellBroadcast मॉड्यूल को इंटिग्रेट करने का तरीका बताया गया है.
सेटिंग के साथ इंटिग्रेट करना
आपके पास यह तय करने का विकल्प होता है कि सेटिंग ऐप्लिकेशन में CellBroadcast की सेटिंग कहां इंटिग्रेट की जाएंगी. उपयोगकर्ता, सेटिंग > ऐप्लिकेशन और सूचनाएं > बेहतर > आपातकालीन चेतावनी से CellBroadcast की सेटिंग वाले पेज को ऐक्सेस करते हैं. सेटिंग ऐप्लिकेशन से CellBroadcastReceiver ऐप्लिकेशन को लॉन्च करने के लिए, पैकेज के नाम com.android.cellbroadcastreceiver
के साथ नीचे दी गई सेटिंग कॉन्फ़िगरेशन बदलें.
<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.android.cellbroadcastreceiver</string>
मैसेजिंग ऐप्लिकेशन के साथ इंटिग्रेट करना
सेलब्रॉडकास्ट मैसेज का इतिहास देखने के लिए, मैसेजिंग ऐप्लिकेशन में ऐप्लिकेशन का लिंक जोड़ा जा सकता है. Android Messages ऐप्लिकेशन में, इसे सेटिंग > बेहतर > आपातकालीन चेतावनी में इंटिग्रेट किया गया है. अपने मैसेजिंग ऐप्लिकेशन में लिंक इंटिग्रेट करने के लिए, मैसेजिंग ऐप्लिकेशन में पाथ तय करें. साथ ही, CellBroadcast मॉड्यूल के लिए, कॉम्पोनेंट के नाम को com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity
के तौर पर कॉन्फ़िगर करें.
एसएमएस इनबॉक्स के साथ इंटिग्रेट करना
डिफ़ॉल्ट मैसेजिंग ऐप्लिकेशन में सेलब्रॉडकास्ट मैसेज दिखाने की सुविधा चालू की जा सकती है. इसके लिए, रनटाइम रिसॉर्स ओवरले का इस्तेमाल करके, यहां दिए गए कॉन्फ़िगरेशन को बदलें.
<item type="bool" name="enable_write_alerts_to_sms_inbox" />
अनुमतियां देना, CellBroadcast मॉड्यूल के दायरे से बाहर का है. इसलिए, आपको CellBroadcast मॉड्यूल को AppOpsManager.OP_WRITE_SMS
की अनुमति देनी होगी, ताकि पूरी तरह से मदद की जा सके. AOSP के रेफ़रंस को लागू करने के लिए, इस SmsApplication.java
पैच को देखें.
CellBroadcastReceiver ऐप्लिकेशन लॉन्च करना
CellBroadcastReceiver ऐप्लिकेशन को लॉन्च करने के ये तरीके हैं.
सेटिंग ऐप्लिकेशन का मेन्यू.
कोई ऐप्लिकेशन (इसमें तीसरे पक्ष के ऐप्लिकेशन भी शामिल हैं), जैसे कि मैसेज ऐप्लिकेशन, जो सेलब्रॉडकास्ट मैसेज के इतिहास से लिंक होता है.
(ज़रूरी नहीं) Android की होम स्क्रीन पर मौजूद लॉन्च आइकॉन, जिसे OEM ने जोड़ा हो. ज़्यादा जानकारी के लिए, लॉन्च आइकॉन जोड़ना देखें.
CellBroadcastReceiver ऐप्लिकेशन की सेटिंग
नीचे दिए गए स्क्रीनशॉट, CellBroadcastReceiver ऐप्लिकेशन की सेटिंग का मेन्यू दिखाते हैं.
दूसरी इमेज. CellBroadcastReceiver ऐप्लिकेशन की सेटिंग का मेन्यू
तीसरी इमेज. खतरे की चेतावनियों का इतिहास दिखाने वाली स्क्रीन
लॉन्च आइकॉन जोड़ना
ऐप्लिकेशन लॉन्चर और अपने लॉन्च आइकॉन से, CellBroadcast मैसेज का इतिहास ऐक्सेस करने की सुविधा चालू की जा सकती है.
ऐप्लिकेशन लॉन्चर से मैसेज का इतिहास ऐक्सेस करने की सुविधा चालू करने के लिए, RRO का इस्तेमाल करके नीचे दिए गए कॉन्फ़िगरेशन को बदलें.
<item type="bool" name="show_message_history_in_launcher" />
एओएसपी के डिफ़ॉल्ट आइकॉन को बदलने के लिए, आरआरओ का इस्तेमाल करके इस कॉन्फ़िगरेशन को बदलें.
<!-- Customize launcher icon for cellbroadcast history --> <item type="mipmap" name="ic_launcher_cell_broadcast" />
सीएमएएस का सीक्रेट कोड चालू करना
सीएमएएस के गुप्त कोड, *#*#CMAS#*#* (डायल पैड पर *#*#2627#*#*) को चालू करने के लिए, डायलर ऐप्लिकेशन को *#*#code#*#* के तौर पर खास डायलर कोड को सुनना होगा. साथ ही, सार्वजनिक तरीके sendDialerSpecialCode
का इस्तेमाल करके कोड को मैनेज करना होगा.
एरिया की जानकारी देना ज़रूरी है: चैनल 50
चैनल 50, कैरियर के लिए एक खास चैनल है. इस पर इलाके से जुड़ी जानकारी ब्रॉडकास्ट की जाती है. हालांकि, दक्षिण अफ़्रीका में MTN के लिए यह चैनल उपलब्ध नहीं है. इस चैनल पर, ब्रॉडकास्ट मैसेज भेजने पर भी कोई डायलॉग या सूचना नहीं मिलती. इसके बजाय, ब्रॉडकास्ट मैसेज, सेटिंग मेन्यू के सिम की स्थिति या स्टेटस बार में दिखते हैं (जैसे, पिन कोड दिखाना).
Android CellBroadcastService को लागू करने पर, सेटिंग और SysUI ऐप्लिकेशन के लिए सेल ब्रॉडकास्ट सेवा में इन एपीआई का इस्तेमाल किया जा सकता है. इससे, ब्रॉडकास्ट चैनल 50 की जानकारी मिलती है. इसे लागू करने के लिए, यह तरीका अपनाएं:
ब्रॉडकास्ट
android.telephony.action.AREA_INFO_UPDATED
रजिस्टर करें और आरआरओ की मदद से, रिसीवर पैकेज के नामconfig_area_info_receiver_packages
को बदलें.CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE
से बाइंड करें.
Settings और SysUI ऐप्लिकेशन, CellBroadcast मॉड्यूल के दायरे से बाहर हैं. इसलिए, आपको SystemUI या Settings ऐप्लिकेशन में बदलाव करने होंगे, ताकि एंड-टू-एंड सहायता मिल सके. रेफ़रंस के तौर पर लागू करने के लिए, CellBroadcastService सेटिंग ऐप्लिकेशन देखें.
पसंद के मुताबिक बनाएं
CellBroadcast मॉड्यूल के सोर्स कोड में सीधे तौर पर बदलाव नहीं किया जा सकता. हालांकि, पैरामीटर को चालू (या बंद) करने के लिए, रनटाइम रिसॉर्स ओवरले (आरआरओ) का इस्तेमाल किया जा सकता है. उदाहरण के लिए, डायलॉग बॉक्स पर सूचनाओं और डाइमेंशन का रंग पसंद के मुताबिक बनाया जा सकता है. CellBroadcast मॉड्यूल में इस्तेमाल किए गए पैरामीटर की डिफ़ॉल्ट वैल्यू को बदलने के लिए, टारगेट पैकेज का नाम com.android.cellbroadcastreceiver
में बदलें. साथ ही:
ओवरले किए जा सकने वाले कॉन्फ़िगरेशन की सूची के लिए,
overlayable.xml
देखें.लागू करने के उदाहरण के लिए, एओएसपी में
RROSampleTestApp
देखें.
अगर लागू करने के दौरान, यूज़र इंटरफ़ेस (यूआई) की स्ट्रिंग के अनुवाद के संसाधन मौजूद नहीं हैं या अनुवाद आपकी उम्मीद के मुताबिक नहीं हैं, तो आरआरओ का इस्तेमाल करके अनुवाद के संसाधनों को बदला जा सकता है. इसके अलावा, CellBroadcast मॉड्यूल में स्ट्रिंग के अनुवाद को अपस्ट्रीम करने के लिए, Google की अनुवाद टीम के साथ मिलकर काम किया जा सकता है. अगर अनुवाद के संसाधनों को बदला जाता है, तो Google को उन स्ट्रिंग को overlayable.xml
में दिखाना होगा, ताकि उन्हें बदला जा सके. अगर आपको यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाने के लिए ज़्यादा कॉन्फ़िगरेशन चाहिए, तो CellBroadcast के सहायता ग्रुप से संपर्क करें.
डेटा माइग्रेट करें
Android 11 में एक लेगसी CellBroadcast ऐप्लिकेशन शामिल है. यह ऐप्लिकेशन, CellBroadcast मॉड्यूल पर अपग्रेड करने वाले डिवाइसों के लिए, ऐप्लिकेशन के डेटा को सुरक्षित रखने और माइग्रेट करने का एक तरीका है. इसमें उपयोगकर्ता की सेटिंग और आपातकालीन चेतावनी का इतिहास भी शामिल है. CellBroadcast मॉड्यूल का इस्तेमाल करने वाले Android वर्शन के लिए, डेटा माइग्रेशन के मकसद से, उनके बिल्ड में लेगसी CellBroadcast ऐप्लिकेशन शामिल होना चाहिए. अगर आपके ऐप्लिकेशन में, सेल ब्रॉडकास्ट के लिए कस्टम समाधान का इस्तेमाल किया गया है, तो आपको डेटा को सुरक्षित रखने के लिए, CellBroadcastContentProvider APK तय करना चाहिए. इसके बाद, किसी नई रिलीज़ में लेगसी सेल ब्रॉडकास्ट APK को सुरक्षित तरीके से हटाया जा सकता है.
CellBroadcast मॉड्यूल का इस्तेमाल करने के लिए अपग्रेड किए गए डिवाइसों पर, यह मॉड्यूल, cellbroadcast-legacy
के ज़रिए, AOSP LegacyCellBroadcastApp या OEM के तय किए गए CellBroadcastContentProvider APK से डेटा फ़ेच करता है.
OEM के तय किए गए CellBroadcastContentProvider APK का इस्तेमाल करना
किसी CellBroadcastContentProvider APK को तय करते समय, APK को इन खास शर्तों का पालन करना होगा.
यह APK, बिना ग्राफ़िक यूज़र इंटरफ़ेस वाला APK है. यह सिर्फ़ अपने डेटाबेस का कॉन्टेंट दिखाता है. साथ ही,
cellbroadcast-legacy
अनुमति वाले ऑब्जेक्ट के ज़रिएSharedPreferences
औरContentProvider
ऑब्जेक्ट को दिखाता है. इसे तीसरे पक्ष के ऐप्लिकेशन ऐक्सेस नहीं कर सकते.APK को OEM डेवलप करता है और उसका मालिकाना हक भी OEM के पास होता है. यहां OEM, अपने छिपे हुए एपीआई स्कीमा को होस्ट करना जारी रख सकता है.
SharedPreferences
को CellBroadcast मॉड्यूल पर माइग्रेट करने के लिए, CellBroadcastContentProvider APK में ContentProvider.call
) वाला तरीका काम करना चाहिए. इसके लिए, इन पैरामीटर का इस्तेमाल करना ज़रूरी है:
- सर्टिफ़िकेट देने वाली संस्था या निकाय:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI
- तरीका:
@SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
Arg:
@SystemAPI CellBroadcast.Preference
यह CellBroadcast मॉड्यूल के लिए, शेयर की गई सेटिंग की उन कुंजियों की सूची है जिनका इस्तेमाल किया जा सकता है. यह डेटा,
ContentProvider.call
वाले तरीके के लिएSharedPreferences
से मिलता है.
मैसेज के इतिहास को CellBroadcast मॉड्यूल में माइग्रेट करने के लिए, CellBroadcastContentProvider APK में इन पैरामीटर के साथ ContentProvider.query
वाला तरीका काम करना चाहिए:
- सर्टिफ़िकेट देने वाली संस्था या निकाय:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI
. क्वेरी कॉलम में, CellBroadcast मॉड्यूल के लिए काम करने वाली मैसेज प्रॉपर्टी की सूची होती है.ContentProvider.query
तरीके के लिए, आपके डेटाबेस से डेटा लेता है.
CellBroadcastContentProvider,
को लागू करने के रेफ़रंस के लिए,
LegacyCellBroadcastContentProvider
देखें.
टेस्ट करना
Android Compatibility Test Suite (CTS), ऐप्लिकेशन पर निर्भर सिस्टम एपीआई के फ़ंक्शन की पुष्टि करता है. CellBroadcast मॉड्यूल को भी चलाया जा सकता है
unit tests/testappsp
.
अगर ओईएम ने किसी डिवाइस के लिए सीएमएएस का गुप्त कोड चालू किया है, तो उस डिवाइस पर डीबग मोड की ये सुविधाएं काम करती हैं.
जांच के लिए भेजी जाने वाली चेतावनियों को अन्य चेतावनियां में ग्रुप किया जाता है. साथ ही, उन्हें चालू/बंद करने के लिए टॉगल भी दिया जाता है.
इतिहास में वे सभी मैसेज शामिल होते हैं जो आपको मिले हैं, लेकिन वे आपको नहीं दिखाए गए हैं. जैसे, डुप्लीकेट मैसेज या किसी दूसरी भाषा में मैसेज.
मैसेज में सभी उपलब्ध पैरामीटर दिखते हैं. इनमें सीरियल नंबर, मैसेज आईडी, और समयसीमा खत्म होने की तारीख शामिल है.
डीबग मोड चालू करने के लिए, डायलर पर *#*#CMAS#*#* डायल करें.
संपर्क
CellBroadcast मॉड्यूल के बारे में ज़्यादा जानकारी या सवालों के लिए, CellBroadcast सहायता ग्रुप से संपर्क करें.