इमरजेंसी अफ़ॉर्डेंस की सुविधा लागू करें

भारत में 1 जनवरी, 2017 से बेचे जाने वाले सभी मोबाइल डिवाइसों में, खतरे की स्थिति में तुरंत मदद पाने के लिए बटन होना चाहिए. ऐसा, भारतीय दूरसंचार विभाग (डीओटी) की ज़रूरी शर्तों को पूरा करने के लिए ज़रूरी है. कानूनी तौर पर तय की गई इन ज़रूरी शर्तों को पूरा करने के लिए, Android डिवाइसों पर पैनिक बटन चालू करने के लिए, Android में इमरजेंसी अफ़ॉर्डेंस की सुविधा को लागू करने का रेफ़रंस शामिल किया गया है.

यह सुविधा Android 8.0 और उसके बाद के वर्शन में डिफ़ॉल्ट रूप से चालू रहती है. हालांकि, इसे पहले के वर्शन के मौजूदा बिल्ड में पैच करना ज़रूरी है. यह सुविधा, खास तौर पर भारत में बेचे जाने वाले डिवाइसों के लिए है. हालांकि, इसे दुनिया भर में बेचे जाने वाले सभी डिवाइसों में शामिल किया जा सकता है, क्योंकि इस सुविधा का भारत से बाहर कोई असर नहीं पड़ता.

उदाहरण और सोर्स

इमरजेंसी अफ़र्डेंस की सुविधा, Android ओपन सोर्स प्रोजेक्ट (AOSP) के frameworks/base प्रोजेक्ट में लागू की गई है. यह मुख्य शाखा में उपलब्ध है और Android 8.0 और उसके बाद के रिलीज़ में डिफ़ॉल्ट रूप से चालू है.

यह सुविधा इन शाखाओं और कमिट में उपलब्ध है. यह जानकारी इसलिए दी जाती है, ताकि डिवाइस बनाने वाली कंपनियां अपने मौजूदा बिल्ड में ज़रूरी बदलावों को आसानी से पैच कर सकें. डिवाइस बनाने वाली जिन कंपनियों को AOSP के रेफ़रंस में मौजूद, आपातकालीन स्थिति में फ़ोन इस्तेमाल करने की सुविधा को लागू करना है वे लागू होने वाली शाखाओं से अपने बिल्ड में कमिट चुन सकती हैं.

टेबल 1. AOSP के रेफ़रंस के तौर पर, इमरजेंसी अफ़र्डेंस की सुविधा के लिए चुनिंदा चीज़ें

शाखा कमिट
मुख्य e0c3c66 आपातकालीन स्थिति में मदद करने वाली सुविधा जोड़ी गई
42a4338 आपातकालीन स्थिति में कार्रवाई करने के लिए दी गई स्ट्रिंग के अनुवाद जोड़े गए
4df8d64 आपातकालीन स्थिति में मदद करने वाली सुविधा, टैबलेट पर दिखने की समस्या को ठीक किया गया
nougat-dev e6680d9 आपातकालीन स्थिति में मदद करने वाली सुविधा जोड़ी गई
95e1865 आपातकालीन स्थिति में कार्रवाई करने के लिए दी गई स्ट्रिंग के अनुवाद जोड़े गए
a70bb89 आपातकालीन स्थिति में मदद करने वाली सुविधा, टैबलेट पर दिखने की समस्या को ठीक किया गया
marshmallow-dev cd22634 आपातकालीन स्थिति में मदद करने वाली सुविधा जोड़ी गई
13f51c6 आपातकालीन स्थिति में कार्रवाई करने के लिए दी गई स्ट्रिंग के अनुवाद जोड़े गए
6531666 आपातकालीन स्थिति में मदद करने वाली सुविधा, टैबलेट पर दिखने की समस्या को ठीक किया गया
lollipop-mr1-dev 5fbc86b आपातकालीन स्थिति में मदद करने वाली सुविधा जोड़ी गई
1b60879 आपातकालीन स्थिति में कार्रवाई करने के लिए निर्देशों की स्ट्रिंग के अनुवाद जोड़े गए
d74366f आपातकालीन स्थिति में मदद करने वाली सुविधा, टैबलेट पर दिखने की समस्या को ठीक किया गया

लागू करना

इमरजेंसी अफ़ॉर्डेंस की सुविधा, Android सॉफ़्टवेयर डेवलपमेंट किट (SDK टूल) के ज़रिए एक्सपोज़ किए गए एपीआई में कोई बदलाव नहीं करती. इस सुविधा को चालू करने पर, आपके पास दो ट्रिगर होते हैं. इनकी मदद से, आपातकालीन स्थिति में 112 पर कॉल किया जा सकता है. यह भारत में आपातकालीन स्थिति में इस्तेमाल किया जाने वाला एकमात्र नंबर है. इसे भारत के डीओटी के नियमों के तहत ज़रूरी किया गया है.

आपातकालीन कॉल इनमें से किसी एक तरीके से शुरू किया जाता है:

लॉक स्क्रीन पर, इमरजेंसी बटन
को दबाकर रखना
ग्लोबल ऐक्शन मेन्यू में, आपातकालीन विकल्प
पर टैप करके
इमरजेंसी बटन

पहली इमेज. लॉक स्क्रीन पर आपातकालीन बटन.

आपातकालीन स्थिति में मदद पाने का विकल्प

दूसरी इमेज. ग्लोबल ऐक्शन मेन्यू में आपातकालीन कार्रवाई (पावर बटन को दबाकर ऐक्सेस किया जाता है).

इस सुविधा में ये इंटरनल कॉम्पोनेंट शामिल हैं:

  • EmergencyAffordanceManager
    frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
    
  • EmergencyAffordanceService
    frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
    

EmergencyAffordanceManager

EmergencyAffordanceManager, EmergencyAffordance सुविधा का इस्तेमाल करने के लिए एक इंटरनल एपीआई उपलब्ध कराता है. यह आपातकालीन कॉल शुरू करने के तरीके उपलब्ध कराता है. साथ ही, रनटाइम के दौरान यह भी पता लगाता है कि यह सुविधा चालू होनी चाहिए या नहीं.

  • void performEmergencyCall(). आपातकालीन कॉल शुरू करता है.
  • boolean needsEmergencyAffordance(). इससे यह तय होता है कि सुविधा चालू होनी चाहिए या नहीं.

EmergencyAffordanceManager.ENABLED कॉन्स्टेंट को false में बदलकर, बिल्ड के समय इस सुविधा को हमेशा के लिए बंद किया जा सकता है. इस वजह से, needsEmergencyAffordance() हमेशा false वैल्यू दिखाता है और EmergencyAffordanceService को शुरू होने से रोकता है.

EmergencyAffordanceService

EmergencyAffordanceService एक सिस्टम सेवा है, जो ढूंढे गए सभी मोबाइल नेटवर्क के मोबाइल कंट्री कोड (एमसीसी) और इंस्टॉल किए गए सिम कार्ड के एमसीसी की निगरानी करती है. अगर इंस्टॉल किए गए किसी सिम कार्ड या डिटेक्ट किए गए मोबाइल नेटवर्क का एमसीसी, भारत के एमसीसी (404 या 405) से मैच करता है, तो यह सुविधा चालू हो जाती है. इसका मतलब है कि भारत में यह सुविधा, सिम कार्ड के बिना भी चालू की जा सकती है. यह माना जाता है कि मोबाइल नेटवर्क, सिम कार्ड के बिना भी आपातकालीन कॉल के लिए रजिस्टर करने की अनुमति देता है. यह सुविधा तब तक चालू रहती है, जब तक भारत से बाहर का सिम कार्ड इंस्टॉल नहीं किया जाता और डिटेक्ट किए गए किसी भी नेटवर्क का एमसीसी मैच नहीं होता.

यहां दिए गए संसाधन और सेटिंग, इमरजेंसी ऐफ़र्डेंस की सुविधा के काम करने के तरीके पर असर डालती हैं. अगर कॉन्फ़िगरेशन टाइप:

  • संसाधन, यह frameworks/base/core/res/res/values/config.xml में बताया गया एक इंटरनल संसाधन है.
  • सेटिंग, यह सिस्टम की सेटिंग की सेवा देने वाली कंपनी में सेव की गई सेटिंग है.

टेबल 2. इमरजेंसी अफ़र्डेंस की सुविधा के काम करने के तरीके पर असर डालने वाली सेटिंग

कॉन्फ़िगरेशन टाइप नाम ब्यौरा
संसाधन config_emergency_call_number वह फ़ोन नंबर जिस पर इमरजेंसी कॉल शुरू होने पर, अपने-आप डायल हो जाता है.
टाइप: स्ट्रिंग
डिफ़ॉल्ट: 112
संसाधन config_emergency_mcc_codes पूर्णांकों का कलेक्शन, जिसमें उन एमसीसी की सूची होती है जिनमें यह सुविधा चालू होनी चाहिए.
टाइप: इंटिजर का कलेक्शन
डिफ़ॉल्ट: {404,405}
सेटिंग emergency_affordance_number आपातकालीन स्थिति में कॉल करने के लिए दिए गए नंबर की मदद से, ग्लोबल सेटिंग को बदलना. इसका असर सिर्फ़ डीबग की जा सकने वाली बिल्ड इमेज पर पड़ता है. इसका मतलब है कि बिल्ड का टाइप userdebug या eng होना चाहिए. इसका मकसद सिर्फ़ जांच करना है.
टाइप: स्ट्रिंग
डिफ़ॉल्ट: सेट नहीं किया गया
सेटिंग force_emergency_affordance ग्लोबल सेटिंग, डिवाइस की स्थिति के बावजूद, इमरजेंसी अफ़ॉर्डेंस की सुविधा दिखनी चाहिए या नहीं. इसका मकसद सिर्फ़ जांच करना है.
टाइप: बूलियन (1 या 0)
डिफ़ॉल्ट: सेट नहीं किया गया --> 0

112 पर आपातकालीन कॉल करने की सुविधा चालू करना

आपातकालीन स्थिति में मदद करने वाली सुविधा, आपातकालीन डायलर का इस्तेमाल करके कॉल को कनेक्ट करती है, ताकि लॉक स्क्रीन चालू होने पर भी कॉल किया जा सके. इमरजेंसी डायलर, कॉल को सिर्फ़ सिस्टम प्रॉपर्टी के ज़रिए रेडियो इंटरफ़ेस लेयर (आरआईएल) से मिली नंबर की सूची से कनेक्ट करता है:

  • ril.ecclist जब कोई सिम कार्ड इंस्टॉल न हो.
  • ril.ecclistSimSlotNumber जब कोई सिम डाला जाता है और SimSlotNumber डिफ़ॉल्ट सदस्य का स्लॉट आईडी होता है.

आपातकालीन स्थिति में मदद पाने की सुविधा का इस्तेमाल करने वाले डिवाइस बनाने वाली कंपनियों को यह पक्का करना होगा कि भारत में डिवाइसों की आरआईएल में, 112 को आपातकालीन नंबर के तौर पर हमेशा चालू रखा जाए.

पुष्टि करें

डीबग किए जा सकने वाले बिल्ड की जांच करते समय, कॉल किए गए नंबर को इस कमांड की मदद से बदला जा सकता है:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

हालांकि, इस सेटिंग को सामान्य उपयोगकर्ता के लिए बने बिल्ड पर सेट किया जा सकता है, लेकिन इसे अनदेखा कर दिया जाता है. कॉल को कनेक्ट करने के लिए, यह ज़रूरी है कि नंबर, आरआईएल की ओर से दी गई आपातकालीन नंबर की सूची में शामिल हो. इसे कुछ समय के लिए सेट किया जा सकता है. इसके लिए, userdebug डिवाइस पर रूट शेल से नीचे दी गई कमांड का इस्तेमाल करें:

setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"

इस कमांड का इस्तेमाल, आपातकालीन स्थिति में फ़ोन इस्तेमाल करने की सुविधा को चालू करने के लिए भी किया जा सकता है. ऐसा तब भी किया जा सकता है, जब भारतीय मोबाइल नेटवर्क का पता न चल रहा हो या भारतीय सिम कार्ड डाला न गया हो.

adb shell settings put global force_emergency_affordance 1

हमारा सुझाव है कि कम से कम इन मामलों की जांच करें:

  • इस सुविधा को चालू करने पर, लॉकस्क्रीन (पहला इमेज) पर मौजूद इमरजेंसी बटन को दबाकर रखने पर, आपातकालीन नंबर पर कॉल किया जाता है.
  • चालू होने पर, ग्लोबल ऐक्शन मेन्यू में आपातकालीन आइटम दिखता है. इस पर टैप करने से, आपातकालीन नंबर पर कॉल शुरू हो जाता है.
  • अगर आपके डिवाइस में भारतीय सिम कार्ड के बजाय, किसी दूसरे देश का सिम कार्ड लगा है और भारतीय मोबाइल नेटवर्क का पता नहीं चलता है, तो यह सुविधा चालू नहीं होती.
  • भारतीय सिम कार्ड इंस्टॉल होने पर, डिवाइस पर यह सुविधा चालू हो जाती है. इससे कोई फ़र्क़ नहीं पड़ता कि डिवाइस पर कौनसे मोबाइल नेटवर्क काम कर रहे हैं.
  • भारतीय मोबाइल नेटवर्क की मौजूदगी में, डिवाइस पर यह सुविधा चालू हो जाती है. भले ही, उसमें कोई भी सिम कार्ड इंस्टॉल हो.

अगर किसी डिवाइस में एक से ज़्यादा सिम कार्ड काम करते हैं, तो जांच से यह पक्का किया जाना चाहिए कि हर सिम स्लॉट में सिम एमसीसी का पता लगाने की सुविधा ठीक से काम करती है. इमरजेंसी अफ़र्डेंस की सुविधा, Android के साथ काम करने की शर्तों के हिसाब से काम नहीं करती. इसलिए, इसके लिए Compatibility Test Suite (CTS) टेस्ट नहीं होते.

अक्सर पूछे जाने वाले सवाल

सवाल. भारत में आपातकालीन नंबर 112 को अब तक चालू नहीं किया गया है. क्या इसका अब भी इस्तेमाल किया जाना चाहिए?

भारत में 112 नंबर का इस्तेमाल, पब्लिक सेफ़्टी आंसरिंग पॉइंट (पीएसएपी) के तौर पर किया जाता है. इस नंबर के बारे में, इंटिग्रेटेड इमरजेंसी कम्यूनिकेशन ऐंड रिस्पॉन्स सिस्टम (आईईसीआरएस) में बताया गया है. जब तक पीएसएपी को चालू नहीं किया जाता, तब तक 112 पर किए गए सभी कॉल, आपातकालीन स्थिति में मदद पाने के लिए पहले से मौजूद 100 नंबर पर भेजे जाते हैं. हालांकि, यह काम Android के बजाय मोबाइल और इंटरनेट सेवा देने वाली कंपनी की ज़िम्मेदारी है.

सवाल. पावर बटन को तीन बार दबाने जैसे अन्य ट्रिगर के बारे में क्या?

डिवाइस बनाने वाली कंपनियां, अन्य ट्रिगर लागू कर सकती हैं. हालांकि, भारत के डीओटी ने हार्डवेयर पावर बटन पर तीन बार टैप करने की अनुमति दी है, लेकिन AOSP के रेफ़रंस को लागू करने में, यह ट्रिगर काम नहीं करता. ऐसा इसलिए है, क्योंकि कुछ लोकप्रिय ऐप्लिकेशन (जैसे, Camera ऐप्लिकेशन) में पावर बटन के जेस्चर का इस्तेमाल किया जाता है. इनमें पावर बटन पर बार-बार टैप करना शामिल है. ऐसे ऐप्लिकेशन, इमरजेंसी डायलर के साथ रुकावट डाल सकते हैं. इसके अलावा, इन ऐप्लिकेशन में कार्रवाइयां ट्रिगर करने की कोशिश करते समय, उपयोगकर्ता अनजाने में पैनिक बटन को ट्रिगर कर सकता है.