CellBroadcast मॉड्यूल की मदद से, OEM को बार-बार एक ही काम करने की ज़रूरत नहीं पड़ती. इससे Android नेटवर्क पर काम करने वाले डिवाइसों के बीच फ़्रैगमेंटेशन कम होता है और असली उपयोगकर्ताओं को एक जैसा अनुभव मिलता है. साथ ही, CellBroadcast से जुड़ी ज़रूरी शर्तों के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी की जांच और सर्टिफ़िकेट पाने की प्रोसेस को आसान बनाने में भी मदद मिलती है. ऐसा इसलिए, क्योंकि OEM को कोड में बदलाव करने की अनुमति नहीं होती. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि Android रिलीज़ के सामान्य साइकल के बाहर, इसकी सुविधाओं को अपडेट किया जा सकता है.
पैकेज का फ़ॉर्मैट
CellBroadcast मॉड्यूल में ये सेवा और ऐप्लिकेशन शामिल हैं.
CellBroadcastService सेवा, CellBroadcast एसएमएस को डिकोड करने, वायरलेस आपातकालीन चेतावनी (WEA) 3.0 के लिए जियोफ़ेंसिंग करने, मैसेज के डुप्लीकेट होने की जांच करने, और ऐप्लिकेशन पर मैसेज ब्रॉडकास्ट करने की सुविधा देती है. यह एक-से-कई लोगों को भेजे जाने वाले मैसेज की सेवा है. इसे जियोटारगेट और जियोफ़ेंस के हिसाब से डिज़ाइन किया गया है. इसका मकसद, तय किए गए इलाके में एक ही समय पर कई मोबाइल फ़ोन उपयोगकर्ताओं को मैसेज भेजना है. इस सेवा को ETSI जीएसएम कमिटी और 3GPP ने तय किया है. यह टेलीकम्यूनिकेशन स्टैंडर्ड का हिस्सा है.
CellBroadcastReceiver ऐप्लिकेशन, डिफ़ॉल्ट सिस्टम ऐप्लिकेशन है. यह आपातकालीन और सामान्य सूचनाओं (जैसे, ऐंबर और राष्ट्रपति की सूचनाएं) को मैनेज करता है. साथ ही, मोबाइल और इंटरनेट सेवा देने वाली कंपनी और क्षेत्रीय नियमों के आधार पर, उपयोगकर्ताओं को जानकारी दिखाता है.
सेल ब्रॉडकास्ट (CBC) मैसेज का फ़्लो
इस इलस्ट्रेशन में, CellBroadcast मैसेज फ़्लो दिखाया गया है.
पहली इमेज. CellBroadcastReceiver मैसेज फ़्लो
रेडियो इंटरफ़ेस लेयर (आरआईएल),
InBoundSMSHandler
को CDMA/GSM के ज़रिए भेजे गए सेलब्रॉडकास्ट एसएमएस के बारे में सूचना देती है.फ़्रेमवर्क, सेल ब्रॉडकास्ट (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 ऐप्लिकेशन को लॉन्च करने के ये तरीके हैं.
सेटिंग ऐप्लिकेशन का मेन्यू.
कोई ऐप्लिकेशन (इसमें तीसरे पक्ष के ऐप्लिकेशन भी शामिल हैं), जैसे कि मैसेज ऐप्लिकेशन, जो सेलब्रॉडकास्ट मैसेज के इतिहास से लिंक होता है.
(ज़रूरी नहीं) OEM ने Android होम स्क्रीन पर जोड़ा गया लॉन्च आइकॉन. ज़्यादा जानकारी के लिए, लॉन्च आइकॉन जोड़ना लेख पढ़ें.
CellBroadcastReceiver ऐप्लिकेशन की सेटिंग
यहां दिए गए स्क्रीनशॉट में, CellBroadcastReceiver ऐप्लिकेशन की सेटिंग मेन्यू को दिखाया गया है.
दूसरी इमेज. CellBroadcastReceiver ऐप्लिकेशन की सेटिंग का मेन्यू
तीसरी इमेज. खतरे की चेतावनियों का इतिहास दिखाने वाली स्क्रीन
लॉन्च आइकॉन जोड़ना
ऐप्लिकेशन लॉन्चर और अपने लॉन्च आइकॉन से, CellBroadcast मैसेज का इतिहास ऐक्सेस करने की सुविधा चालू की जा सकती है.
ऐप्लिकेशन लॉन्चर से मैसेज का इतिहास ऐक्सेस करने की सुविधा चालू करने के लिए, आरआरओ का इस्तेमाल करके, यहां दिए गए कॉन्फ़िगरेशन को बदलें.
<item type="bool" name="show_message_history_in_launcher" />
AOSP के डिफ़ॉल्ट आइकॉन को बदलने के लिए, किसी RRO का इस्तेमाल करके, नीचे दिए गए कॉन्फ़िगरेशन को बदलें.
<!-- 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
देखें.लागू करने का उदाहरण जानने के लिए, AOSP में
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 सहायता ग्रुप से संपर्क करें.