CellBroadcast मॉड्यूल, ओईएम के लिए बार-बार किए जाने वाले काम को कम करता है. इससे Android इकोसिस्टम में फ़्रैगमेंटेशन कम होता है और उपयोगकर्ताओं को एक जैसा अनुभव मिलता है. साथ ही, यह सेल ब्रॉडकास्ट से जुड़ी ज़रूरी शर्तों के लिए, कैरियर की टेस्टिंग और सर्टिफ़िकेशन को बेहतर बनाने में मदद करता है. ऐसा इसलिए, क्योंकि ओईएम कोड में बदलाव नहीं कर सकते. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि इसे Android के सामान्य रिलीज़ साइकल के बाहर भी अपडेट किया जा सकता है.
पैकेज का फ़ॉर्मैट
CellBroadcast मॉड्यूल में, ये सेवा और ऐप्लिकेशन शामिल हैं.
CellBroadcastService सेवा, सेल ब्रॉडकास्ट मैसेज (एसएमएस) को डिकोड करने, वायरलेस इमरजेंसी अलर्ट (डब्ल्यूईए) 3.0 के लिए जियोफ़ेंसिंग, मैसेज डुप्लीकेशन की जांच, और ऐप्लिकेशन पर मैसेज ब्रॉडकास्ट करने की सुविधा देती है. यह एक-से-ज़्यादा लोगों को मैसेज भेजने की जियोटारगेटेड और जियोफ़ेंस वाली मैसेज सेवा है. इसे एक ही समय में, तय किए गए इलाके में मौजूद कई मोबाइल फ़ोन उपयोगकर्ताओं को मैसेज भेजने के लिए डिज़ाइन किया गया है. इस सेवा को ETSI GSM कमिटी, 3GPP ने तय किया है. यह टेलीकम्यूनिकेशन स्टैंडर्ड का हिस्सा है.
CellBroadcastReceiver ऐप्लिकेशन, डिफ़ॉल्ट सिस्टम ऐप्लिकेशन है. यह आपातकालीन और गैर-आपातकालीन अलर्ट (जैसे, एंबर और प्रेसिडेंशियल अलर्ट) को मैनेज करता है. साथ ही, कैरियर और इलाके के नियमों के आधार पर, उपयोगकर्ताओं को जानकारी दिखाता है.
CellBroadcast मैसेज फ़्लो
यहां दी गई इमेज में, CellBroadcast मैसेज फ़्लो दिखाया गया है.
पहली इमेज. CellBroadcastReceiver मैसेज फ़्लो
रेडियो इंटरफ़ेस लेयर (आरआईएल), CDMA/GSM CellBroadcast मैसेज (एसएमएस) के बारे में
InBoundSMSHandlerको सूचना देता है.फ़्रेमवर्क, CellBroadcast मैसेज (एसएमएस) को सीबीएस मॉड्यूल पर फ़ॉरवर्ड करता है, ताकि आने वाले मैसेज को पार्स और प्रोसेस किया जा सके.
मैसेज प्रोसेस होने के बाद, CellBroadcastService, इंटेंट को सिस्टम के डिफ़ॉल्ट CellBroadcastReceiver ऐप्लिकेशन पर फ़ॉरवर्ड करता है.
CellBroadcastReceiver ऐप्लिकेशन, उपयोगकर्ता को मैसेज दिखाता है.
मॉड्यूल का फ़ॉर्मैट
CellBroadcastService और CellBroadcastReceiver ऐप्लिकेशन, एक
ही APEX फ़ाइल
(com.android.cellbroadcast) में शामिल हैं. यह फ़ाइल, Android 11 या इसके बाद के वर्शन वाले डिवाइसों के लिए उपलब्ध है. इस मॉड्यूल में, package/app/CellBroadcastReceiver में कोड शामिल है. साथ ही, यह मौजूदा फ़्रेमवर्क क्लास को packages/modules/CellBroadcastService पर माइग्रेट करता है.
मॉड्यूल की डिपेंडेंसी
CellBroadcast मॉड्यूल, फ़्रेमवर्क के साथ सिर्फ़ स्टेबल @SystemApi (कोई @hide एपीआई नहीं) का इस्तेमाल करके इंटरैक्ट करता है. साथ ही, यह इन स्टैटिक लाइब्रेरी पर निर्भर करता है.
Androidx.legacy_legacy-support-v13Androidx.recyclerview_recyclerviewAndroidx.preference_preferenceandroidx.legacy_legacy-preference-v14androidx.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 के मैसेजिंग ऐप्लिकेशन में, इसे सेटिंग > बेहतर सेटिंग > आपातकालीन स्थिति की सूचना में इंटिग्रेट किया गया है. अपने मैसेजिंग ऐप्लिकेशन में लिंक इंटिग्रेट करने के लिए, मैसेजिंग ऐप्लिकेशन में पाथ तय करें. साथ ही, CellBroadcast मॉड्यूल के लिए कॉम्पोनेंट का नाम com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity के तौर पर कॉन्फ़िगर करें.
एसएमएस इनबॉक्स के साथ इंटिग्रेट करना
रनटाइम रिसॉर्स ओवरले का इस्तेमाल करके, इस कॉन्फ़िगरेशन को बदलकर, डिफ़ॉल्ट मैसेजिंग ऐप्लिकेशन में CellBroadcast मैसेज दिखाए जा सकते हैं.
<item type="bool" name="enable_write_alerts_to_sms_inbox" />
अनुमतियां देने की सुविधा, CellBroadcast मॉड्यूल के दायरे से बाहर है. इसलिए, आपको एंड-टू-एंड सहायता देने के लिए, CellBroadcast मॉड्यूल को AppOpsManager.OP_WRITE_SMS अनुमति देनी होगी. AOSP के रेफ़रंस के तौर पर लागू करने के लिए,
यह SmsApplication.java
पैच देखें.
CellBroadcastReceiver ऐप्लिकेशन लॉन्च करना
CellBroadcastReceiver ऐप्लिकेशन को इन जगहों से लॉन्च किया जा सकता है.
सेटिंग ऐप्लिकेशन का मेन्यू.
कोई ऐप्लिकेशन (तीसरे पक्ष के ऐप्लिकेशन भी शामिल हैं), जैसे कि मैसेज ऐप्लिकेशन, जो CellBroadcast मैसेज के इतिहास से लिंक होता है.
(ज़रूरी नहीं) ओईएम की ओर से Android की होम स्क्रीन पर जोड़ा गया लॉन्च आइकॉन. ज़्यादा जानकारी के लिए, लॉन्च आइकॉन जोड़ना लेख देखें.
CellBroadcastReceiver ऐप्लिकेशन की सेटिंग
यहां दिए गए स्क्रीनशॉट में, CellBroadcastReceiver ऐप्लिकेशन की सेटिंग का मेन्यू दिखाया गया है.
दूसरी इमेज. CellBroadcastReceiver ऐप्लिकेशन की सेटिंग का मेन्यू
तीसरी इमेज. आपातकालीन अलर्ट के इतिहास की स्क्रीन
लॉन्च आइकॉन जोड़ना
ऐप्लिकेशन लॉन्चर और अपने लॉन्च आइकॉन की मदद से, CellBroadcast मैसेज के इतिहास को ऐक्सेस किया जा सकता है.
ऐप्लिकेशन लॉन्चर से मैसेज के इतिहास को ऐक्सेस करने की सुविधा चालू करने के लिए, आरआरओ का इस्तेमाल करके इस कॉन्फ़िगरेशन को बदलें.
<item type="bool" name="show_message_history_in_launcher" />AOSP के डिफ़ॉल्ट आइकॉन को बदलने के लिए, आरआरओ का इस्तेमाल करके इस कॉन्फ़िगरेशन को बदलें.
<!-- 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से बाइंड करें.
सेटिंग और SysUI ऐप्लिकेशन, CellBroadcast मॉड्यूल के दायरे से बाहर हैं. इसलिए, एंड-टू-एंड सहायता देने के लिए, आपको SystemUI या सेटिंग ऐप्लिकेशन में बदलाव करने होंगे. रेफ़रंस के तौर पर लागू करने के लिए, CellBroadcastService सेटिंग्ज़ ऐप्लिकेशन देखें.
पसंद के मुताबिक बनाएं
CellBroadcast मॉड्यूल के सोर्स कोड में सीधे तौर पर बदलाव नहीं किया जा सकता. हालांकि, रनटाइम रिसॉर्स ओवरले
(आरआरओ) का इस्तेमाल करके, पैरामीटर चालू (या बंद) किए जा सकते हैं. उदाहरण के लिए, सूचनाओं का रंग और डायलॉग के डाइमेंशन को पसंद के मुताबिक बनाया जा सकता है. CellBroadcast मॉड्यूल में इस्तेमाल किए गए पैरामीटर की डिफ़ॉल्ट वैल्यू को बदलने के लिए, टारगेट पैकेज का नाम बदलकर com.android.cellbroadcastreceiver करें. इसके अलावा:
ओवरले किए जा सकने वाले कॉन्फ़िगरेशन की सूची के लिए,
overlayable.xmlदेखें.लागू करने के उदाहरण के लिए,
RROSampleTestAppAOSP में देखें.
अगर यूज़र इंटरफ़ेस (यूआई) स्ट्रिंग के अनुवाद वाले रिसॉर्स मौजूद नहीं हैं या अनुवाद आपकी उम्मीद के मुताबिक नहीं हैं, तो आरआरओ का इस्तेमाल करके, अनुवाद वाले रिसॉर्स को बदला जा सकता है. इसके अलावा, CellBroadcast मॉड्यूल में स्ट्रिंग के अनुवादों को अपस्ट्रीम करने के लिए, Google की अनुवाद टीम के साथ काम किया जा सकता है. अगर अनुवाद वाले रिसॉर्स को बदला जाता है, तो Google को उन स्ट्रिंग को overlayable.xml में दिखाना होगा, ताकि उन्हें बदला जा सके. यूआई को पसंद के मुताबिक बनाने के लिए, अगर आपको ज़्यादा कॉन्फ़िगरेशन की ज़रूरत है, तो
CellBroadcast की सहायता टीम से संपर्क करें.
डेटा माइग्रेट करें
Android 11 में, CellBroadcast का पुराना ऐप्लिकेशन शामिल है. यह CellBroadcast मॉड्यूल पर अपग्रेड करने वाले डिवाइसों के लिए, ऐप्लिकेशन के डेटा (उपयोगकर्ता की सेटिंग और खतरे की चेतावनी के इतिहास) को सुरक्षित रखने और माइग्रेट करने का एक तरीका है. CellBroadcast मॉड्यूल का इस्तेमाल करने वाले Android के वर्शन में, डेटा माइग्रेशन के लिए, पुराने CellBroadcast ऐप्लिकेशन को शामिल किया जाना चाहिए. अगर आपके वर्शन में, सेल ब्रॉडकास्ट के लिए किसी कस्टम समाधान का इस्तेमाल किया जाता है, तो डेटा को सुरक्षित रखने के लिए, CellBroadcastContentProvider APK तय किया जाना चाहिए. इसके बाद, रिलीज़ के अगले वर्शन में, सेल ब्रॉडकास्ट के पुराने APK को हटाया जा सकता है.
CellBroadcast मॉड्यूल का इस्तेमाल करने के लिए अपग्रेड किए गए डिवाइसों पर, मॉड्यूल, AOSP के LegacyCellBroadcastApp या ओईएम की ओर से तय किए गए CellBroadcastContentProvider APK से डेटा फ़ेच करता है. इसके लिए, cellbroadcast-legacy अथॉरिटी का इस्तेमाल किया जाता है.
ओईएम की ओर से तय किए गए CellBroadcastContentProvider APK का इस्तेमाल करना
CellBroadcastContentProvider APK तय करते समय, यह ज़रूरी है कि APK इन खास बातों के मुताबिक हो.
यह एक हेडलेस APK है. यह सिर्फ़ अपने डेटाबेस और
SharedPreferencesको,cellbroadcast-legacyअथॉरिटी वालेContentProviderऑब्जेक्ट के ज़रिए दिखाता है. साथ ही, इसे तीसरे पक्ष के ऐप्लिकेशन ऐक्सेस नहीं कर सकते.इस APK को ओईएम ने बनाया है और इसका मालिकाना हक भी ओईएम के पास है. ओईएम, अपने छिपे हुए एपीआई स्कीमा को होस्ट करना जारी रख सकता है.
SharedPreferences को CellBroadcast मॉड्यूल पर माइग्रेट करने के लिए,
CellBroadcastContentProvider APK में, इन पैरामीटर के साथ
ContentProvider.call)
तरीका काम करना चाहिए:
- अथॉरिटी:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI - तरीका:
@SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE आर्ग:
@SystemAPI CellBroadcast.Preferenceयह CellBroadcast मॉड्यूल के लिए, शेयर की गई प्राथमिकता वाली कुंजियों की सूची है. तरीके के लिए, डेटा
SharedPreferencesसे आता है.ContentProvider.call
मैसेज के इतिहास को CellBroadcast मॉड्यूल पर माइग्रेट करने के लिए,
CellBroadcastContentProvider APK में, इन पैरामीटर के साथ
ContentProvider.query
तरीका काम करना चाहिए:
- अथॉरिटी:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI. क्वेरी कॉलम की सूची में, CellBroadcast मॉड्यूल के लिए, मैसेज की काम करने वाली प्रॉपर्टी शामिल हैं.ContentProvider.queryतरीके के लिए, डेटा (आपके डेटाबेस से) लेता है.
CellBroadcastContentProvider, के लिए, रेफ़रंस के तौर पर लागू करने के लिए,
LegacyCellBroadcastContentProvider देखें.
जांच करना
Android Compatibility Test Suite (सीटीएस), ऐप्लिकेशन पर निर्भर करने वाले सिस्टम एपीआई की सुविधाओं की पुष्टि करता है. आपके पास CellBroadcast मॉड्यूल
unit tests/testappsp को भी चलाने का विकल्प होता है.
जांच के लिए भेजे जाने वाले अलर्ट, अन्य अलर्ट में ग्रुप किए जाते हैं. इनके लिए, चालू/बंद करने का टॉगल मौजूद होता है.
इतिहास में, वे सभी मैसेज शामिल होते हैं जो मिले थे, लेकिन दिखाए नहीं गए थे. जैसे, डुप्लीकेट मैसेज या किसी दूसरी भाषा में मिले मैसेज.
मैसेज में, सीरियल नंबर, मैसेज आईडी, और खत्म होने की तारीख जैसी सभी उपलब्ध पैरामीटर दिखते हैं.
डीबग मोड चालू करने के लिए, डायलर पर *#*#CMAS#*#* डायल करें.
संपर्क
CellBroadcast मॉड्यूल के बारे में ज़्यादा जानकारी पाने या सवाल पूछने के लिए, CellBroadcast की सहायता टीम से संपर्क करें.