सेल प्रसारण

सेलब्रॉडकास्ट मॉड्यूल ओईएम के लिए दोहराए जाने वाले प्रयासों को कम करता है (जो बदले में एंड्रॉइड पारिस्थितिकी तंत्र में विखंडन को कम करता है और अंतिम उपयोगकर्ताओं को सुसंगत व्यवहार प्रदान करता है) और सेलब्रॉडकास्ट-संबंधित आवश्यकताओं के लिए वाहक परीक्षण और प्रमाणन को सुव्यवस्थित करने में मदद करता है (क्योंकि कोड को ओईएम द्वारा संशोधित नहीं किया जा सकता है) ). यह मॉड्यूल अद्यतन करने योग्य है, जिसका अर्थ है कि यह सामान्य एंड्रॉइड रिलीज़ चक्र के बाहर कार्यक्षमता के लिए अपडेट प्राप्त कर सकता है।

पैकेज प्रारूप

सेलब्रॉडकास्ट मॉड्यूल में निम्नलिखित सेवा और ऐप शामिल हैं।

  • सेलब्रॉडकास्टसर्विस सेवा सेलब्रॉडकास्ट एसएमएस डिकोडिंग, वायरलेस आपातकालीन अलर्ट (डब्ल्यूईए) 3.0 के लिए जियोफेंसिंग, संदेश डुप्लिकेशन जांच और ऐप्स पर संदेश प्रसारित करने का समर्थन करती है। यह एक-से-कई जियोटार्गेटेड और जियोफेंस्ड मैसेजिंग सेवा है जिसे एक ही समय में एक परिभाषित क्षेत्र में कई मोबाइल फोन उपयोगकर्ताओं को संदेश देने के लिए डिज़ाइन किया गया है। सेवा को ईटीएसआई जीएसएम समिति, 3जीपीपी द्वारा परिभाषित किया गया है, और यह दूरसंचार मानकों का एक हिस्सा है।

  • सेलब्रॉडकास्टरिसीवर ऐप एक डिफ़ॉल्ट सिस्टम ऐप है जो आपातकालीन और गैर-आपातकालीन अलर्ट (जैसे एम्बर और प्रेसिडेंशियल अलर्ट) को संभालता है और वाहक और क्षेत्रीय नियमों के आधार पर अंतिम उपयोगकर्ताओं को जानकारी प्रस्तुत करता है।

सेलब्रॉडकास्ट संदेश प्रवाह

निम्नलिखित चित्र सेलब्रॉडकास्ट संदेश प्रवाह को दर्शाता है।

सेलब्रॉडकास्टरिसीवर संदेश प्रवाह

चित्र 1. सेलब्रॉडकास्टरिसीवर संदेश प्रवाह

  1. रेडियो इंटरफ़ेस परत (आरआईएल) InBoundSMSHandler सीडीएमए/जीएसएम सेलब्रॉडकास्ट एसएमएस के बारे में सूचित करती है।

  2. फ़्रेमवर्क आने वाले संदेश को पार्स करने और संसाधित करने के लिए सेलब्रॉडकास्ट एसएमएस को सीबीएस मॉड्यूल पर अग्रेषित करता है।

  3. संदेश संसाधित होने के बाद, CellBroadcastService सिस्टम डिफ़ॉल्ट CellBroadcastReceiver ऐप के इरादे को अग्रेषित करता है।

  4. CellBroadcastReceiver ऐप उपयोगकर्ता को संदेश प्रदर्शित करता है।

मॉड्यूल प्रारूप

CellBroadcastService और CellBroadcastReceiver ऐप एक एकल APEX फ़ाइल ( com.android.cellbroadcast ) में शामिल हैं, जो Android 11 या उच्चतर चलाने वाले उपकरणों के लिए उपलब्ध है। मॉड्यूल में package/app/CellBroadcastReceiver में कोड शामिल है और मौजूदा फ्रेमवर्क कक्षाओं को packages/modules/CellBroadcastService में स्थानांतरित करता है।

मॉड्यूल निर्भरताएँ

सेलब्रॉडकास्ट मॉड्यूल केवल स्थिर @SystemApi (कोई @hide API नहीं) का उपयोग करके फ्रेमवर्क के साथ इंटरैक्ट करता है और निम्नलिखित स्थिर पुस्तकालयों पर निर्भर करता है।

  • Androidx.legacy_legacy-support-v13
  • Androidx.recyclerview_recyclerview
  • Androidx.preference_preference
  • androidx.legacy_legacy-preference-v14
  • androidx.appcompat_appcompat

आप रनटाइम रिसोर्स ओवरले (आरआरओ) का उपयोग करके कॉन्फ़िगरेशन को अनुकूलित कर सकते हैं।

अनुमति विन्यास

सेलब्रॉडकास्ट मॉड्यूल को प्लेटफ़ॉर्म हस्ताक्षर के बजाय Google हस्ताक्षर के साथ हस्ताक्षरित किया गया है, जिसका अर्थ है कि मॉड्यूल हस्ताक्षर अनुमतियों तक पहुंच खो देता है। इसके बजाय, एंड्रॉइड 11 सेलब्रॉडकास्ट मॉड्यूल के अंदर नई हस्ताक्षर अनुमति com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY को परिभाषित करता है; मॉड्यूल में केवल पैकेज ही अनुमति प्राप्त कर सकते हैं क्योंकि वे एक ही कुंजी से हस्ताक्षरित हैं। यह अनुमति CellBroadcastReceiver ऐप को CellBroadcastService के अंदर डेटाबेस तक पूर्ण पहुंच की अनुमति देती है।

प्लेटफ़ॉर्म आपातकालीन अलर्ट के इतिहास तक पहुंचने के लिए डिफ़ॉल्ट सिस्टम एसएमएस ऐप को android.permission.READ_CELL_BROADCASTS रनटाइम अनुमति देता है।

सेलब्रॉडकास्ट मॉड्यूल को एकीकृत करना

यह अनुभाग बताता है कि सेलब्रॉडकास्ट मॉड्यूल को कैसे एकीकृत किया जाए।

सेटिंग्स के साथ एकीकरण

आप यह तय कर सकते हैं कि सेटिंग्स ऐप में सेलब्रॉडकास्ट सेटिंग्स को कहां एकीकृत किया जाए (अंतिम उपयोगकर्ता सेलब्रॉडकास्ट सेटिंग्स पेज को सेटिंग्स > ऐप्स और नोटिफिकेशन > एडवांस्ड> इमरजेंसी अलर्ट से एक्सेस करते हैं)। सेटिंग ऐप से CellBroadcastReceiver ऐप लॉन्च करने के लिए, पैकेज नाम com.android.cellbroadcastreceiver के साथ निम्नलिखित सेटिंग कॉन्फ़िगरेशन बदलें।

<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.android.cellbroadcastreceiver</string>

मैसेजिंग ऐप्स के साथ एकीकरण

सेलब्रॉडकास्ट संदेश इतिहास खोलने के लिए आप किसी ऐप लिंक को मैसेजिंग ऐप में एकीकृत कर सकते हैं। एंड्रॉइड मैसेजिंग ऐप में, इसे सेटिंग्स > एडवांस्ड > इमरजेंसी अलर्ट में एकीकृत किया गया है। अपने स्वयं के मैसेजिंग ऐप में एक लिंक को एकीकृत करने के लिए, मैसेजिंग ऐप में पथ को परिभाषित करें और सेलब्रॉडकास्ट मॉड्यूल के लिए घटक नाम को com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity के रूप में कॉन्फ़िगर करें।

एसएमएस इनबॉक्स के साथ एकीकरण

आप रनटाइम संसाधन ओवरले का उपयोग करके निम्नलिखित कॉन्फ़िगरेशन को ओवरराइड करके डिफ़ॉल्ट मैसेजिंग ऐप में सेलब्रॉडकास्ट संदेशों को प्रदर्शित करने में सक्षम कर सकते हैं।

<item type="bool" name="enable_write_alerts_to_sms_inbox" />

क्योंकि अनुमति देना सेलब्रॉडकास्ट मॉड्यूल के दायरे से बाहर है, आपको एंड-टू-एंड समर्थन प्रदान करने के लिए सेलब्रॉडकास्ट मॉड्यूल को AppOpsManager.OP_WRITE_SMS अनुमति देनी होगी। एओएसपी संदर्भ कार्यान्वयन के लिए, इस SmsApplication.java पैच को देखें।

सेलब्रॉडकास्टरिसीवर ऐप लॉन्च किया जा रहा है

सेलब्रॉडकास्टरिसीवर ऐप में निम्नलिखित लॉन्च बिंदु हैं।

  • सेटिंग्स ऐप मेनू.

  • एक ऐप (थर्ड-पार्टी ऐप्स सहित) जैसे कि एक संदेश ऐप जो सेलब्रॉडकास्ट संदेश इतिहास से लिंक करता है।

  • (वैकल्पिक) OEM द्वारा एंड्रॉइड होम स्क्रीन से एक लॉन्च आइकन जोड़ा गया। विवरण के लिए, लॉन्च आइकन जोड़ना देखें।

सेलब्रॉडकास्टरिसीवर ऐप सेटिंग्स

निम्नलिखित स्क्रीनशॉट सेलब्रॉडकास्टरिसीवर ऐप सेटिंग्स मेनू दिखाते हैं।

सेलब्रॉडकास्टरिसीवर ऐप सेटिंग मेनू

चित्र 2. सेलब्रॉडकास्टरिसीवर ऐप सेटिंग मेनू

आपातकालीन चेतावनी इतिहास

चित्र 3. आपातकालीन चेतावनी इतिहास स्क्रीन

लॉन्च आइकन जोड़ना

आप ऐप लॉन्चर से और अपने स्वयं के लॉन्च आइकन के माध्यम से सेलब्रॉडकास्ट संदेश इतिहास तक पहुंच सक्षम कर सकते हैं।

  • ऐप लॉन्चर से संदेश इतिहास तक पहुंच सक्षम करने के लिए, आरआरओ का उपयोग करके निम्नलिखित कॉन्फ़िगरेशन को ओवरराइड करें।

    <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 गुप्त कोड को सक्षम करना

सीएमएएस गुप्त कोड को सक्षम करने के लिए, *#*#CMAS#*#* ( *#*#2627#*#* डायल पैड पर), एक डायलर ऐप को *#*# के रूप में विशेष डायलर कोड को सुनना होगा code #*#* और सार्वजनिक विधि sendDialerSpecialCode उपयोग करके कोड को संभालें।

क्षेत्र की जानकारी की आवश्यकता: चैनल 50

चैनल 50 वाहकों के लिए क्षेत्र-संबंधित जानकारी प्रसारित करने के लिए एक विशेष चैनल है (दक्षिण अफ्रीका में एमटीएन को छोड़कर)। इस चैनल के लिए, प्रसारण संदेशों के परिणामस्वरूप पॉपअप संवाद या अधिसूचना नहीं आती है। इसके बजाय, प्रसारण संदेश सेटिंग मेनू के सिम स्टेटस या स्टेटस बार में दिखाई देते हैं (उदाहरण के लिए, ज़िप कोड प्रदर्शित करना)।

एंड्रॉइड सेलब्रॉडकास्टसर्विस कार्यान्वयन, प्रसारण चैनल 50 की जानकारी प्राप्त करने के लिए सेटिंग्स और SysUI ऐप्स के लिए सेल प्रसारण सेवा में निम्नलिखित एपीआई के लिए समर्थन प्रदान करता है। इसे लागू करने के लिए, निम्नलिखित कार्य करें:

  • प्रसारण android.telephony.action.AREA_INFO_UPDATED पंजीकृत करें और RRO के माध्यम से रिसीवर पैकेज नाम config_area_info_receiver_packages को ओवरराइड करें।

  • CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE से जुड़ें।

चूँकि सेटिंग्स और SysUI ऐप्स सेलब्रॉडकास्ट मॉड्यूल के दायरे से बाहर हैं, इसलिए आपको एंड-टू-एंड समर्थन प्रदान करने के लिए SystemUI या सेटिंग्स ऐप में अपने परिवर्तन लागू करने होंगे। संदर्भ कार्यान्वयन के लिए, CellBroadcastService सेटिंग्स ऐप देखें।

अनुकूलित

आप सीधे सेलब्रॉडकास्ट मॉड्यूल के स्रोत कोड को संशोधित नहीं कर सकते हैं, लेकिन आप पैरामीटर को सक्षम (या अक्षम) करने के लिए रनटाइम संसाधन ओवरले (आरआरओ) का उपयोग कर सकते हैं (उदाहरण के लिए, आप संवादों पर सूचनाओं और आयामों के रंग को अनुकूलित कर सकते हैं)। सेलब्रॉडकास्ट मॉड्यूल में उपयोग किए गए मापदंडों के डिफ़ॉल्ट मानों को ओवरराइड करने के लिए, लक्ष्य पैकेज नाम को com.android.cellbroadcastreceiver में बदलें। इसके अलावा:

  • ओवरलेएबल कॉन्फ़िगरेशन की सूची के लिए, overlayable.xml देखें।

  • उदाहरण कार्यान्वयन के लिए, AOSP में RROSampleTestApp देखें।

यदि कार्यान्वयन में यूआई स्ट्रिंग अनुवाद संसाधनों की कमी है या यदि अनुवाद आपकी अपेक्षाओं को पूरा नहीं करते हैं, तो आप आरआरओ का उपयोग करके अनुवाद संसाधनों को ओवरराइड कर सकते हैं या सेलब्रॉडकास्ट मॉड्यूल में स्ट्रिंग अनुवादों को अपस्ट्रीम करने के लिए Google अनुवाद टीम के साथ काम कर सकते हैं। यदि आप अनुवाद संसाधनों को ओवरराइड करते हैं, तो ओवरराइडिंग की अनुमति देने के लिए Google को उन स्ट्रिंग्स को overlayable.xml में प्रदर्शित करना होगा। यदि आपको यूआई अनुकूलन के लिए अधिक कॉन्फ़िगरेशन की आवश्यकता है, तो सेलब्रॉडकास्ट सहायता समूह से संपर्क करें।

डेटा स्थानांतरित करना

एंड्रॉइड 11 में एक लीगेसी सेलब्रॉडकास्ट ऐप शामिल है, जो सेलब्रॉडकास्ट मॉड्यूल में अपग्रेड करने वाले उपकरणों के लिए ऐप डेटा (उपयोगकर्ता सेटिंग्स और आपातकालीन अलर्ट इतिहास सहित) को संरक्षित और स्थानांतरित करने का एक तंत्र है। एंड्रॉइड कार्यान्वयन जो सेलब्रॉडकास्ट मॉड्यूल का उपयोग करते हैं, उन्हें डेटा माइग्रेशन के लिए अपने निर्माण में लीगेसी सेलब्रॉडकास्ट ऐप को शामिल करना चाहिए। यदि आपका कार्यान्वयन एक कस्टम सेलब्रॉडकास्ट समाधान का उपयोग करता है, तो आपको डेटा को संरक्षित करने के लिए एक सेलब्रॉडकास्टकंटेंटप्रोवाइडर एपीके को परिभाषित करना चाहिए (आप बाद के रिलीज में लीगेसी सेल ब्रॉडकास्ट एपीके को सुरक्षित रूप से हटा सकते हैं)।

सेलब्रॉडकास्ट मॉड्यूल का उपयोग करने के लिए अपग्रेड किए गए उपकरणों पर, मॉड्यूल अच्छी तरह से परिभाषित सेलब्रॉडकास्ट cellbroadcast-legacy प्राधिकरण के माध्यम से AOSP लिगेसीसेलब्रॉडकास्टऐप या OEM-परिभाषित सेलब्रॉडकास्टकंटेंटप्रोवाइडर एपीके से डेटा प्राप्त करता है।

OEM-परिभाषित CellBroadcastContentProvider APK का उपयोग करना

CellBroadcastContentProvider APK को परिभाषित करते समय, APK को इन विशिष्टताओं का पालन करना होगा।

  • एपीके एक हेडलेस एपीके है जो cellbroadcast-legacy प्राधिकरण के साथ एक ContentProvider ऑब्जेक्ट के माध्यम से केवल अपने डेटाबेस और SharedPreferences की सामग्री को प्रदर्शित करता है, और तीसरे पक्ष के ऐप्स के लिए पहुंच योग्य नहीं है।

  • एपीके को ओईएम द्वारा विकसित और स्वामित्व दिया गया है, जहां ओईएम अपने छिपे हुए एपीआई स्कीमा को होस्ट करना जारी रख सकता है।

SharedPreferences CellBroadcast मॉड्यूल में स्थानांतरित करने के लिए, CellBroadcastContentProvider APK को निम्नलिखित मापदंडों के साथ ContentProvider.call ) विधि का समर्थन करना चाहिए:

  • प्राधिकरण: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • विधि: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • Arg: @SystemAPI CellBroadcast.Preference

    यह सेलब्रॉडकास्ट मॉड्यूल के लिए समर्थित साझा वरीयता कुंजियों की एक सूची है। ContentProvider.call पद्धति के लिए डेटा SharedPreferences से आता है।

संदेश इतिहास को सेलब्रॉडकास्ट मॉड्यूल में स्थानांतरित करने के लिए, सेलब्रॉडकास्टकंटेंटप्रोवाइडर एपीके को निम्नलिखित मापदंडों के साथ ContentProvider.query विधि का समर्थन करना चाहिए:

  • प्राधिकरण: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI । क्वेरी कॉलम सेलब्रॉडकास्ट मॉड्यूल के लिए समर्थित संदेश गुणों की सूची बनाते हैं। ContentProvider.query विधि के लिए डेटा (आपके डेटाबेस से) लेता है।

CellBroadcastContentProvider, LegacyCellBroadcastContentProvider देखें।

परिक्षण

एंड्रॉइड संगतता परीक्षण सूट (सीटीएस) ऐप-निर्भर सिस्टम एपीआई की कार्यक्षमता की पुष्टि करता है। आप CellBroadcast मॉड्यूल unit tests/testappsp भी चला सकते हैं।

यदि OEM ने किसी डिवाइस के लिए CMAS गुप्त कोड सक्षम किया है, तो वह डिवाइस निम्नलिखित सुविधाओं के साथ डिबग मोड का समर्थन कर सकता है।

  • परीक्षण अलर्ट को ऑन/ऑफ टॉगल के साथ अन्य अलर्ट के अंतर्गत समूहीकृत किया जाता है।

  • इतिहास में वे सभी संदेश शामिल हैं जो प्राप्त हुए थे लेकिन प्रदर्शित नहीं किए गए, जैसे डुप्लिकेट संदेश या किसी अन्य भाषा में संदेश।

  • संदेश सीरियल नंबर, संदेश आईडी और समाप्ति तिथि सहित सभी उपलब्ध पैरामीटर प्रदर्शित करते हैं।

डिबग मोड को सक्षम करने के लिए, डायलर पर *#*#CMAS#*#* डायल करें।

संपर्क

सेलब्रॉडकास्ट मॉड्यूल के बारे में अधिक जानकारी या प्रश्नों के लिए, सेलब्रॉडकास्ट सहायता समूह से संपर्क करें।