Android पर अनुमतियां

ऐप्लिकेशन की अनुमतियों से, उपयोगकर्ता की निजता को सुरक्षित रखने में मदद मिलती है. इसके लिए, इन चीज़ों के ऐक्सेस को सुरक्षित रखा जाता है:

  • प्रतिबंधित डेटा, जैसे कि सिस्टम की स्थिति और उपयोगकर्ताओं की संपर्क जानकारी
  • प्रतिबंधित कार्रवाइयां, जैसे कि जोड़े गए डिवाइस से कनेक्ट करना और ऑडियो रिकॉर्ड करना

इस पेज पर, Android की अनुमतियों के काम करने के तरीके के बारे में खास जानकारी दी गई है. इसमें अनुमतियों का इस्तेमाल करने के लिए हाई-लेवल वर्कफ़्लो, अलग-अलग तरह की अनुमतियों की जानकारी, और आपके ऐप्लिकेशन में अनुमतियों का इस्तेमाल करने के कुछ सबसे सही तरीके शामिल हैं. अन्य पेजों पर, आपके ऐप्लिकेशन की अनुमतियों के अनुरोधों को कम करने, अनुमतियों का एलान करने, रनटाइम की अनुमतियों का अनुरोध करने, और अन्य ऐप्लिकेशन आपके ऐप्लिकेशन के कॉम्पोनेंट के साथ कैसे इंटरैक्ट कर सकते हैं, इस पर पाबंदी लगाने के तरीके के बारे में बताया गया है.

Android ऐप्लिकेशन की अनुमतियों की पूरी सूची देखने के लिए, अनुमतियों के एपीआई के रेफ़रंस पेज पर जाएं.

अनुमतियों के वर्कफ़्लो को दिखाने वाले कुछ सैंपल के तौर पर मिले ऐप्लिकेशन देखने के लिए, GitHub पर Android की अनुमतियों के सैंपल की रिपॉज़िटरी पर जाएं.

अनुमतियों का इस्तेमाल करने का वर्कफ़्लो

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

अगर आपको लगता है कि आपके ऐप्लिकेशन को इस्तेमाल के उदाहरण को पूरा करने के लिए, पाबंदी वाले डेटा को ऐक्सेस करना चाहिए या पाबंदी वाली कार्रवाइयां करनी चाहिए, तो ज़रूरी अनुमतियों का एलान करें. कुछ अनुमतियां, जिन्हें इंस्टॉल-टाइम अनुमतियां कहा जाता है, ऐप्लिकेशन इंस्टॉल होने पर अपने-आप मिल जाती हैं. अन्य अनुमतियों को रनटाइम की अनुमतियां कहा जाता है. इनके लिए, आपके ऐप्लिकेशन को एक कदम आगे बढ़कर, रनटाइम के दौरान अनुमति का अनुरोध करना होगा.

पहली इमेज में, ऐप्लिकेशन की अनुमतियों का इस्तेमाल करने के वर्कफ़्लो के बारे में बताया गया है:

पहली इमेज. Android पर अनुमतियों का इस्तेमाल करने के लिए, हाई-लेवल वर्कफ़्लो.

अलग-अलग तरह की अनुमतियां

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

इंस्टॉल के समय मिलने वाली अनुमतियां

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

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

Android में, इंस्टॉल के समय मिलने वाली अनुमतियों के कई सब-टाइप शामिल हैं. इनमें सामान्य अनुमतियां और सिग्नेचर अनुमतियां शामिल हैं.

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

इन अनुमतियों से, ऐसे डेटा और कार्रवाइयों को ऐक्सेस किया जा सकता है जो आपके ऐप्लिकेशन के सैंडबॉक्स से बाहर की हैं. हालांकि, इनसे उपयोगकर्ता की निजता और अन्य ऐप्लिकेशन के काम करने के तरीके को बहुत कम खतरा होता है.

सिस्टम, सामान्य अनुमतियों को normal सुरक्षा लेवल असाइन करता है.

हस्ताक्षर की अनुमतियां

सिस्टम किसी ऐप्लिकेशन को हस्ताक्षर की अनुमति सिर्फ़ तब देता है, जब ऐप्लिकेशन पर उसी सर्टिफ़िकेट से हस्ताक्षर किया गया हो जिससे अनुमति तय करने वाले ऐप्लिकेशन या ओएस पर किया गया है.

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

सिस्टम, हस्ताक्षर की अनुमतियों को signature सुरक्षा लेवल असाइन करता है.

रनटाइम अनुमतियां

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

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

जब आपका ऐप्लिकेशन रनटाइम की अनुमति का अनुरोध करता है, तो सिस्टम रनटाइम की अनुमति का प्रॉम्प्ट दिखाता है. जैसा कि इमेज 3 में दिखाया गया है.

रनटाइम की कई अनुमतियां, उपयोगकर्ता के निजी डेटा को ऐक्सेस करती हैं. यह एक खास तरह का प्रतिबंधित डेटा होता है, जिसमें संवेदनशील जानकारी शामिल हो सकती है. उपयोगकर्ता के निजी डेटा के उदाहरणों में, जगह की जानकारी और संपर्क जानकारी शामिल है.

माइक्रोफ़ोन और कैमरे से, खास तौर पर संवेदनशील जानकारी को ऐक्सेस किया जा सकता है. इसलिए, सिस्टम आपको यह बताने में मदद करता है कि आपका ऐप्लिकेशन इस जानकारी को क्यों ऐक्सेस करता है.

सिस्टम, रनटाइम की अनुमतियों को dangerous सुरक्षा लेवल असाइन करता है.

खास अनुमतियां

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

सिस्टम सेटिंग में मौजूद खास ऐप्लिकेशन ऐक्सेस पेज पर, उपयोगकर्ता के टॉगल किए जा सकने वाले ऑपरेशन का एक सेट होता है. इनमें से कई कार्रवाइयों को खास अनुमतियों के तौर पर लागू किया जाता है.

खास अनुमतियों का अनुरोध करने के तरीके के बारे में ज़्यादा जानें.

सिस्टम, खास अनुमतियों को appop सुरक्षा लेवल असाइन करता है.

अनुमतियों के ग्रुप

अनुमतियां, अनुमतियों के समूह से जुड़ी हो सकती हैं. अनुमतियों के समूह में, लॉजिक के हिसाब से एक-दूसरे से जुड़ी अनुमतियों का सेट होता है. उदाहरण के लिए, एसएमएस भेजने और पाने की अनुमतियां एक ही ग्रुप में हो सकती हैं, क्योंकि दोनों ही अनुमतियां, ऐप्लिकेशन के एसएमएस से जुड़े इंटरैक्शन से जुड़ी हैं.

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

सबसे सही तरीके

ऐप्लिकेशन की अनुमतियां, सिस्टम की सुरक्षा से जुड़ी सुविधाओं पर आधारित होती हैं. इनकी मदद से, Android को उपयोगकर्ता की निजता से जुड़े इन लक्ष्यों को पूरा करने में मदद मिलती है:

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

इस सेक्शन में, आपके ऐप्लिकेशन में अनुमतियों का असरदार तरीके से इस्तेमाल करने के लिए, सबसे सही तरीकों का एक सेट दिया गया है. Android पर अनुमतियों के साथ काम करने के तरीके के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन की अनुमतियों के सबसे सही तरीके पेज पर जाएं.

कम से कम अनुमतियों का अनुरोध करना

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

रनटाइम की अनुमतियों को खास कार्रवाइयों से जोड़ना

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

अपने ऐप्लिकेशन की डिपेंडेंसी को ध्यान में रखें

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

सही जानकारी दें

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

सिस्टम के ऐक्सेस को साफ़ तौर पर बताना

जब आपका ऐप्लिकेशन संवेदनशील डेटा या हार्डवेयर, जैसे कि कैमरा या माइक्रोफ़ोन को ऐक्सेस करता है, तो ऐप्लिकेशन में लगातार एक इंडिकेटर दिखाएं. ऐसा तब करें, जब सिस्टम पहले से ये इंडिकेटर न दिखाता हो. इस रिमाइंडर से उपयोगकर्ताओं को यह समझने में मदद मिलती है कि आपका ऐप्लिकेशन, पाबंदी वाले डेटा को कब ऐक्सेस करता है या पाबंदी वाली कार्रवाइयां कब करता है.

सिस्टम कॉम्पोनेंट में अनुमतियां

अनुमतियां सिर्फ़ सिस्टम की सुविधाओं का अनुरोध करने के लिए नहीं होती हैं. आपके ऐप्लिकेशन के सिस्टम कॉम्पोनेंट, यह तय कर सकते हैं कि कौनसे अन्य ऐप्लिकेशन आपके ऐप्लिकेशन के साथ इंटरैक्ट कर सकते हैं. इस बारे में ज़्यादा जानने के लिए, अन्य ऐप्लिकेशन के साथ इंटरैक्शन को सीमित करने के तरीके के बारे में बताने वाले पेज पर जाएं.