आपातकालीन स्थिति में मदद करने की सुविधा लागू करना

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

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

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

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

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

पहली टेबल. AOSP के लिए, इमरजेंसी अफ़ॉर्डेंस की सुविधा के लिए चुनी गई चीज़ें

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

लागू करना

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

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

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

पहली इमेज. लॉकस्क्रीन पर मौजूद EMERGENCY बटन.

आपातकालीन विकल्प के साथ ग्लोबल ऐक्शन मेन्यू

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

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

  • 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, Emergency Affordance सुविधा का इस्तेमाल करने के लिए, इंटरनल एपीआई उपलब्ध कराता है. यह आपातकालीन कॉल शुरू करने के तरीके उपलब्ध कराता है. साथ ही, यह सुविधा चालू होनी चाहिए या नहीं, इसके लिए रनटाइम पर क्वेरी करता है.

  • 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)
डिफ़ॉल्ट: unset --> 0

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

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

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

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

Validation

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

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

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

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

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

adb shell settings put global force_emergency_affordance 1

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

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

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

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

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

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

सवाल: क्या पावर बटन को तीन बार दबाने जैसे अन्य ट्रिगर भी उपलब्ध हैं?

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