CellBroadcast मॉड्यूल, ओईएम के लिए बार-बार किए जाने वाले कामों को कम करता है. इससे Android इकोसिस्टम में फ़्रैगमेंटेशन कम होता है और असली उपयोगकर्ताओं को एक जैसा अनुभव मिलता है. साथ ही, इससे CellBroadcast से जुड़ी ज़रूरी शर्तों के लिए, कैरियर टेस्टिंग और सर्टिफ़िकेशन को बेहतर बनाने में मदद मिलती है. ऐसा इसलिए, क्योंकि ओईएम कोड में बदलाव नहीं कर सकते. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि इसे Android की रिलीज़ के सामान्य साइकल के बाहर भी अपडेट मिल सकते हैं.
पैकेज का फ़ॉर्मैट
CellBroadcast मॉड्यूल में ये सेवा और ऐप्लिकेशन शामिल हैं.
CellBroadcastService सेवा, सेल ब्रॉडकास्ट एसएमएस डिकोडिंग, वायरलेस इमरजेंसी अलर्ट (डब्ल्यूईए) 3.0 के लिए जियोफ़ेंसिंग, मैसेज डुप्लीकेट होने की जांच, और ऐप्लिकेशन पर मैसेज ब्रॉडकास्ट करने की सुविधा देती है. यह एक से ज़्यादा लोगों को मैसेज भेजने की सेवा है. इसमें किसी खास इलाके को टारगेट किया जाता है और उस इलाके के हिसाब से मैसेज भेजे जाते हैं. इस सेवा को एक साथ कई मोबाइल फ़ोन उपयोगकर्ताओं को, किसी तय इलाके में, एक ही समय पर मैसेज भेजने के लिए डिज़ाइन किया गया है. इस सेवा को ETSI GSM कमिटी और 3GPP ने तय किया है. यह टेलीकम्यूनिकेशन स्टैंडर्ड का हिस्सा है.
CellBroadcastReceiver एक डिफ़ॉल्ट सिस्टम ऐप्लिकेशन है. यह आपातकालीन और गैर-आपातकालीन सूचनाओं (जैसे, अंबर और राष्ट्रपति की सूचनाएं) को मैनेज करता है. साथ ही, कैरियर और क्षेत्रीय नियमों के आधार पर, यह सूचनाएं उपयोगकर्ताओं को दिखाता है.
सेल ब्रॉडकास्ट (CBC) मैसेज फ़्लो
इस इमेज में, CellBroadcast मैसेज फ़्लो दिखाया गया है.
पहली इमेज. CellBroadcastReceiver मैसेज फ़्लो
रेडियो इंटरफ़ेस लेयर (आरआईएल),
InBoundSMSHandler
को सीडीएमए/जीएसएम सेल ब्रॉडकास्ट एसएमएस के बारे में सूचना देती है.यह फ़्रेमवर्क, CellBroadcast SMS को 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>
मैसेजिंग ऐप्लिकेशन के साथ इंटिग्रेट करना
मैसेजिंग ऐप्लिकेशन में ऐप्लिकेशन लिंक को इंटिग्रेट किया जा सकता है, ताकि CellBroadcast मैसेज का इतिहास खोला जा सके. Android Messaging ऐप्लिकेशन में, इसे सेटिंग > ऐडवांस > आपातकालीन चेतावनी में इंटिग्रेट किया गया है. अपने मैसेजिंग ऐप्लिकेशन में लिंक को इंटिग्रेट करने के लिए, मैसेजिंग ऐप्लिकेशन में पाथ तय करें. साथ ही, CellBroadcast मॉड्यूल के लिए कॉम्पोनेंट का नाम com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity
के तौर पर कॉन्फ़िगर करें.
एसएमएस इनबॉक्स के साथ इंटिग्रेट करना
डिफ़ॉल्ट मैसेजिंग ऐप्लिकेशन में CellBroadcast मैसेज दिखाने की सुविधा चालू की जा सकती है. इसके लिए, रनटाइम रिसॉर्स ओवरले का इस्तेमाल करके, इस कॉन्फ़िगरेशन को बदलें.
<item type="bool" name="enable_write_alerts_to_sms_inbox" />
अनुमतियां देना, CellBroadcast मॉड्यूल के दायरे से बाहर है. इसलिए, आपको AppOpsManager.OP_WRITE_SMS
को CellBroadcast मॉड्यूल के लिए अनुमति देनी होगी, ताकि वह पूरी तरह से सहायता दे सके. AOSP के रेफ़रंस को लागू करने के लिए, इस SmsApplication.java
पैच को देखें.
CellBroadcastReceiver ऐप्लिकेशन लॉन्च करें
CellBroadcastReceiver ऐप्लिकेशन को इन जगहों से लॉन्च किया जा सकता है.
सेटिंग ऐप्लिकेशन का मेन्यू.
कोई ऐसा ऐप्लिकेशन (इसमें तीसरे पक्ष के ऐप्लिकेशन भी शामिल हैं) जो CellBroadcast मैसेज के इतिहास से लिंक होता है. जैसे, मैसेज ऐप्लिकेशन.
(ज़रूरी नहीं है) Android की होम स्क्रीन पर मौजूद लॉन्च आइकॉन, जिसे ओईएम ने जोड़ा है. ज़्यादा जानकारी के लिए, लॉन्च आइकॉन जोड़ना लेख पढ़ें.
CellBroadcastReceiver ऐप्लिकेशन की सेटिंग
यहां दिए गए स्क्रीनशॉट में, CellBroadcastReceiver ऐप्लिकेशन की सेटिंग मेन्यू दिखाया गया है.
दूसरी इमेज. CellBroadcastReceiver ऐप्लिकेशन की सेटिंग का मेन्यू
तीसरी इमेज. आपातकालीन चेतावनी के इतिहास की स्क्रीन
लॉन्च आइकॉन जोड़ना
ऐप्लिकेशन लॉन्चर और अपने लॉन्च आइकॉन के ज़रिए, CellBroadcast मैसेज के इतिहास को ऐक्सेस करने की सुविधा चालू की जा सकती है.
ऐप्लिकेशन लॉन्चर से मैसेज के इतिहास को ऐक्सेस करने की सुविधा चालू करने के लिए, RRO का इस्तेमाल करके यहां दिए गए कॉन्फ़िगरेशन को बदलें.
<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, सेल ब्रॉडकास्ट सेवा में इन एपीआई के साथ काम करता है. इससे Settings और SysUI ऐप्लिकेशन को ब्रॉडकास्ट चैनल 50 की जानकारी मिलती है. इसे लागू करने के लिए, यह तरीका अपनाएं:
ब्रॉडकास्ट
android.telephony.action.AREA_INFO_UPDATED
रजिस्टर करें और RRO के ज़रिए, रिसीवर पैकेज के नामconfig_area_info_receiver_packages
को बदलें.CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE
से बाइंड करें.
सेटिंग और SysUI ऐप्लिकेशन, CellBroadcast मॉड्यूल के दायरे से बाहर हैं. इसलिए, आपको SystemUI या सेटिंग ऐप्लिकेशन में बदलाव लागू करने होंगे, ताकि एंड-टू-एंड सपोर्ट दिया जा सके. रेफ़रंस के तौर पर लागू करने के लिए, CellBroadcastService Settings ऐप्लिकेशन देखें.
पसंद के मुताबिक बनाएं
CellBroadcast मॉड्यूल के सोर्स कोड में सीधे तौर पर बदलाव नहीं किया जा सकता. हालांकि, रनटाइम रिसोर्स ओवरले (आरआरओ) का इस्तेमाल करके, पैरामीटर चालू या बंद किए जा सकते हैं. उदाहरण के लिए, सूचनाओं के रंग और डाइमेंशन को डायलॉग पर पसंद के मुताबिक बनाया जा सकता है. CellBroadcast मॉड्यूल में इस्तेमाल किए गए पैरामीटर की डिफ़ॉल्ट वैल्यू बदलने के लिए, टारगेट पैकेज का नाम बदलकर com.android.cellbroadcastreceiver
करें. साथ ही:
जिन कॉन्फ़िगरेशन को ओवरले किया जा सकता है उनकी सूची के लिए,
overlayable.xml
पर जाएं.लागू करने के उदाहरण के लिए, AOSP में
RROSampleTestApp
देखें.
अगर यूज़र इंटरफ़ेस (यूआई) स्ट्रिंग के अनुवाद के संसाधन मौजूद नहीं हैं या अनुवाद आपकी उम्मीद के मुताबिक नहीं हैं, तो आरआरओ का इस्तेमाल करके अनुवाद के संसाधनों को बदला जा सकता है. इसके अलावा, Google की अनुवाद टीम के साथ मिलकर, स्ट्रिंग के अनुवादों को CellBroadcast मॉड्यूल में अपस्ट्रीम किया जा सकता है. अगर आपको अनुवाद के संसाधनों को बदलना है, तो Google को उन स्ट्रिंग को overlayable.xml
में दिखाना होगा, ताकि उन्हें बदला जा सके. अगर आपको यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाने के लिए, ज़्यादा कॉन्फ़िगरेशन की ज़रूरत है, तो CellBroadcast की सहायता टीम से संपर्क करें.
डेटा माइग्रेट करें
Android 11 में, लेगसी CellBroadcast ऐप्लिकेशन शामिल है. यह CellBroadcast मॉड्यूल पर अपग्रेड करने वाले डिवाइसों के लिए, ऐप्लिकेशन डेटा (इसमें उपयोगकर्ता की सेटिंग और आपातकालीन सूचनाओं का इतिहास शामिल है) को सुरक्षित रखने और माइग्रेट करने का एक तरीका है. Android के ऐसे वर्शन जो CellBroadcast मॉड्यूल का इस्तेमाल करते हैं उन्हें डेटा माइग्रेट करने के लिए, अपने बिल्ड में लेगसी CellBroadcast ऐप्लिकेशन को शामिल करना चाहिए. अगर आपके ऐप्लिकेशन में कस्टम CellBroadcast सॉल्यूशन का इस्तेमाल किया जाता है, तो आपको CellBroadcastContentProvider APK तय करना चाहिए, ताकि डेटा को सुरक्षित रखा जा सके. इसके बाद, अगली रिलीज़ में लेगसी सेल ब्रॉडकास्ट APK को सुरक्षित तरीके से हटाया जा सकता है.
CellBroadcast मॉड्यूल का इस्तेमाल करने के लिए अपग्रेड किए गए डिवाइसों पर, मॉड्यूल, डेटा को AOSP के LegacyCellBroadcastApp या OEM के CellBroadcastContentProvider APK से फ़ेच करता है. इसके लिए, अच्छी तरह से तय की गई cellbroadcast-legacy
अथॉरिटी का इस्तेमाल किया जाता है.
OEM के तय किए गए CellBroadcastContentProvider APK का इस्तेमाल करें
CellBroadcastContentProvider APK तय करते समय, APK को इन निर्देशों का पालन करना होगा.
यह APK, हेडलेस APK है. यह सिर्फ़ अपने डेटाबेस का कॉन्टेंट दिखाता है. साथ ही,
cellbroadcast-legacy
अथॉरिटी वालेContentProvider
ऑब्जेक्ट के ज़रिएSharedPreferences
दिखाता है. इसे तीसरे पक्ष के ऐप्लिकेशन ऐक्सेस नहीं कर सकते.इस APK को 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 सहायता ग्रुप से संपर्क करें.