ऐप्लिकेशन की अनुमतियां, उपयोगकर्ता की निजता की सुरक्षा करने में मदद करती हैं. ऐसा इसलिए, क्योंकि ये अनुमतियां यहां दिए गए डेटा का ऐक्सेस सुरक्षित रखती हैं:
- पाबंदी वाला डेटा, जैसे कि सिस्टम की स्थिति और उपयोगकर्ताओं की संपर्क जानकारी
- पाबंदी वाली कार्रवाइयां, जैसे कि जोड़े गए डिवाइस से कनेक्ट करना और ऑडियो रिकॉर्ड करना
इस पेज पर, Android में अनुमतियों के काम करने के तरीके के बारे में खास जानकारी दी गई है. इसमें अनुमतियों का इस्तेमाल करने के लिए, सामान्य वर्कफ़्लो, अलग-अलग तरह की अनुमतियों के बारे में जानकारी, और अपने ऐप्लिकेशन में अनुमतियों का इस्तेमाल करने के कुछ सबसे सही तरीके शामिल हैं. अन्य पेजों पर, अनुमतियों के लिए ऐप्लिकेशन के अनुरोधों को कम करने, अनुमतियों का एलान करने, रनटाइम अनुमतियों का अनुरोध करने, और यह तय करने के बारे में बताया गया है कि अन्य ऐप्लिकेशन, आपके ऐप्लिकेशन के कॉम्पोनेंट के साथ कैसे इंटरैक्ट कर सकते हैं.
Android ऐप्लिकेशन की अनुमतियों की पूरी सूची देखने के लिए, अनुमतियों वाले एपीआई के रेफ़रंस पेज पर जाएं.
अनुमतियों के वर्कफ़्लो को दिखाने वाले कुछ सैंपल ऐप्लिकेशन देखने के लिए, GitHub पर Android की अनुमतियों के सैंपल वाली रिपॉज़िटरी पर जाएं.
अनुमतियों का इस्तेमाल करने का वर्कफ़्लो
अगर आपका ऐप्लिकेशन ऐसी सुविधा देता है जिसके लिए, प्रतिबंधित डेटा या प्रतिबंधित कार्रवाइयों को ऐक्सेस करने की ज़रूरत पड़ सकती है, तो यह तय करें कि क्या अनुमतियों का एलान किए बिना जानकारी हासिल की जा सकती है या कार्रवाइयां की जा सकती हैं. अपने ऐप्लिकेशन में कई तरह के काम किए जा सकते हैं. जैसे, फ़ोटो लेना, मीडिया चलाने की सुविधा को रोकना, और काम के विज्ञापन दिखाना. इसके लिए, आपको किसी भी अनुमति के बारे में जानकारी देने की ज़रूरत नहीं है.
अगर आपको लगता है कि किसी इस्तेमाल के उदाहरण को पूरा करने के लिए, आपके ऐप्लिकेशन को पाबंदी वाला डेटा ऐक्सेस करना चाहिए या पाबंदी वाली कार्रवाइयां करनी चाहिए, तो ज़रूरी अनुमतियों का एलान करें. कुछ अनुमतियां, जिन्हें इंस्टॉल के समय दी जाने वाली अनुमतियां कहा जाता है, ऐप्लिकेशन इंस्टॉल होने पर अपने-आप मिल जाती हैं. अन्य अनुमतियों को रनटाइम अनुमतियां कहा जाता है. इनके लिए, आपके ऐप्लिकेशन को एक और चरण पूरा करना होता है. साथ ही, रनटाइम के दौरान अनुमति का अनुरोध करना होता है.
पहली इमेज में, ऐप्लिकेशन की अनुमतियों का इस्तेमाल करने का वर्कफ़्लो दिखाया गया है:
अलग-अलग तरह की अनुमतियां
Android, अनुमतियों को अलग-अलग कैटगरी में बांटता है. इनमें इंस्टॉल के समय दी जाने वाली अनुमतियां, रनटाइम अनुमतियां, और खास अनुमतियां शामिल हैं. हर अनुमति का टाइप यह दिखाता है कि आपका ऐप्लिकेशन, पाबंदी वाले डेटा को किस हद तक ऐक्सेस कर सकता है. साथ ही, यह भी दिखाता है कि सिस्टम से अनुमति मिलने पर, आपका ऐप्लिकेशन पाबंदी वाली कार्रवाइयां किस हद तक कर सकता है. हर अनुमति के लिए सुरक्षा का लेवल, उसके टाइप पर आधारित होता है. यह अनुमतियों वाले एपीआई के रेफ़रंस पेज पर दिखता है.
इंस्टॉल करने के समय दी जाने वाली अनुमतियां
इंस्टॉल करने के समय दी जाने वाली अनुमतियों से, आपके ऐप्लिकेशन को पाबंदी वाले डेटा का सीमित ऐक्सेस मिलता है. इसके अलावा, इससे आपका ऐप्लिकेशन पाबंदी वाली ऐसी कार्रवाइयां कर सकता है जिनका सिस्टम या अन्य ऐप्लिकेशन पर कम से कम असर पड़ता है. जब ऐप्लिकेशन में इंस्टॉल करने के समय की अनुमतियों का एलान किया जाता है, तो ऐप्लिकेशन स्टोर, उपयोगकर्ता को इंस्टॉल करने के समय की अनुमति से जुड़ी सूचना दिखाता है. यह सूचना तब दिखती है, जब उपयोगकर्ता किसी ऐप्लिकेशन का ज़्यादा जानकारी वाला पेज देखता है. इसे दूसरी इमेज में दिखाया गया है. जब उपयोगकर्ता आपका ऐप्लिकेशन इंस्टॉल करता है, तब सिस्टम आपके ऐप्लिकेशन को ये अनुमतियां अपने-आप दे देता है.
Android में, इंस्टॉल-टाइम की अनुमतियों के कई सब-टाइप शामिल हैं. इनमें सामान्य अनुमतियां और हस्ताक्षर वाली अनुमतियां शामिल हैं.
सामान्य अनुमतियां
इन अनुमतियों से, ऐसे डेटा और कार्रवाइयों को ऐक्सेस करने की अनुमति मिलती है जो आपके ऐप्लिकेशन के सैंडबॉक्स से बाहर हैं. हालांकि, इससे उपयोगकर्ता की निजता और अन्य ऐप्लिकेशन के चलने पर बहुत कम जोखिम होता है.
सिस्टम, सामान्य अनुमतियों को normal
सुरक्षा का लेवल असाइन करता है.
हस्ताक्षर करने की अनुमतियां
सिस्टम किसी ऐप्लिकेशन को सिग्नेचर की अनुमति सिर्फ़ तब देता है, जब ऐप्लिकेशन को उसी सर्टिफ़िकेट से साइन किया गया हो जिससे अनुमति तय करने वाले ऐप्लिकेशन या ओएस को साइन किया गया है.
ऑटोमैटिक जानकारी भरने या वीपीएन सेवाओं जैसी खास सुविधाएं देने वाले ऐप्लिकेशन भी, सिग्नेचर की अनुमतियों का इस्तेमाल करते हैं. इन ऐप्लिकेशन के लिए, सेवा-बाइंडिंग के हस्ताक्षर की अनुमतियां ज़रूरी होती हैं, ताकि सिर्फ़ सिस्टम सेवाओं से जुड़ सके.
सिस्टम, सिग्नेचर की अनुमतियों को signature
सुरक्षा का लेवल असाइन करता है.
रनटाइम अनुमतियां
रनटाइम अनुमतियों को खतरनाक अनुमतियां भी कहा जाता है. इनसे आपके ऐप्लिकेशन को पाबंदी वाले डेटा का अतिरिक्त ऐक्सेस मिलता है. इसके अलावा, इनसे आपका ऐप्लिकेशन पाबंदी वाली कार्रवाइयां कर पाता है. इन कार्रवाइयों से सिस्टम और अन्य ऐप्लिकेशन पर ज़्यादा असर पड़ता है. इसलिए, प्रतिबंधित डेटा को ऐक्सेस करने या प्रतिबंधित कार्रवाइयां करने से पहले, आपको अपने ऐप्लिकेशन में रनटाइम अनुमतियों का अनुरोध करना होगा. यह न मान लें कि ये अनुमतियां पहले ही दी जा चुकी हैं. इनकी जांच करें और अगर ज़रूरत हो, तो हर बार ऐक्सेस करने से पहले इनके लिए अनुरोध करें.
जब आपका ऐप्लिकेशन, रनटाइम की अनुमति का अनुरोध करता है, तो सिस्टम रनटाइम की अनुमति का प्रॉम्प्ट दिखाता है. इसे तीसरे फ़िगर में दिखाया गया है.
कई रनटाइम अनुमतियां, उपयोगकर्ता के निजी डेटा को ऐक्सेस करती हैं. यह पाबंदी वाले डेटा का एक खास टाइप है. इसमें संवेदनशील जानकारी शामिल होती है. उपयोगकर्ता के निजी डेटा के उदाहरणों में, जगह की जानकारी और संपर्क जानकारी शामिल है.
माइक्रोफ़ोन और कैमरे से, खास तौर पर संवेदनशील जानकारी का ऐक्सेस मिलता है. इसलिए, सिस्टम आपको यह बताने में मदद करता है कि आपका ऐप्लिकेशन इस जानकारी को क्यों ऐक्सेस करता है.
सिस्टम, रनटाइम की अनुमतियों के लिए dangerous
सुरक्षा का लेवल असाइन करता है.
खास अनुमतियां
खास अनुमतियां, ऐप्लिकेशन के कुछ खास कामों से जुड़ी होती हैं. सिर्फ़ प्लैटफ़ॉर्म और ओईएम, खास अनुमतियां तय कर सकते हैं. इसके अलावा, प्लैटफ़ॉर्म और ओईएम, खास अनुमतियां तय करते हैं. ऐसा तब किया जाता है, जब उन्हें कुछ खास कार्रवाइयों के ऐक्सेस को सुरक्षित रखना होता है. जैसे, अन्य ऐप्लिकेशन के ऊपर ले जाने की अनुमति.
सिस्टम सेटिंग में मौजूद ऐप्लिकेशन को खास ऐक्सेस पेज पर, ऐसी कार्रवाइयों का सेट होता है जिन्हें उपयोगकर्ता टॉगल कर सकता है. इनमें से कई कार्रवाइयों को खास अनुमतियों के तौर पर लागू किया जाता है.
खास अनुमतियों का अनुरोध करने के तरीके के बारे में ज़्यादा जानें.
सिस्टम, खास अनुमतियों को appop
सुरक्षा का लेवल असाइन करता है.
अनुमतियों के ग्रुप
अनुमतियां, अनुमति ग्रुप से जुड़ी हो सकती हैं. अनुमति ग्रुप में, एक जैसी अनुमतियों का सेट होता है. उदाहरण के लिए, मैसेज (एसएमएस) भेजने और पाने की अनुमतियां एक ही ग्रुप से जुड़ी हो सकती हैं, क्योंकि ये दोनों ही अनुमतियां, ऐप्लिकेशन के एसएमएस से इंटरैक्ट करने से जुड़ी हैं.
अनुमति ग्रुप की मदद से, सिस्टम ऐसे सिस्टम डायलॉग की संख्या को कम कर सकता है जो किसी ऐप्लिकेशन के मिलती-जुलती अनुमतियों का अनुरोध करने पर उपयोगकर्ता को दिखाए जाते हैं. जब किसी उपयोगकर्ता को किसी ऐप्लिकेशन के लिए अनुमतियां देने का प्रॉम्प्ट दिखाया जाता है, तो एक ही ग्रुप से जुड़ी अनुमतियां एक ही इंटरफ़ेस में दिखाई जाती हैं. हालांकि, अनुमतियां बिना सूचना दिए ग्रुप बदल सकती हैं. इसलिए, यह न मान लें कि कोई खास अनुमति किसी अन्य अनुमति के साथ ग्रुप की गई है.
सबसे सही तरीके
ऐप्लिकेशन की अनुमतियां, सिस्टम की सुरक्षा से जुड़ी सुविधाओं पर आधारित होती हैं. साथ ही, ये Android को उपयोगकर्ता की निजता से जुड़े इन लक्ष्यों को पूरा करने में मदद करती हैं:
- कंट्रोल: उपयोगकर्ता के पास यह कंट्रोल होता है कि वह ऐप्लिकेशन के साथ कौन-सा डेटा शेयर करे.
- पारदर्शिता: उपयोगकर्ता को यह पता होना चाहिए कि कोई ऐप्लिकेशन कौनसा डेटा इस्तेमाल करता है और वह इस डेटा को क्यों ऐक्सेस करता है.
- कम से कम डेटा इकट्ठा करना: कोई ऐप्लिकेशन सिर्फ़ उस डेटा को ऐक्सेस और इस्तेमाल करता है जो उपयोगकर्ता की ओर से शुरू किए गए किसी खास टास्क या कार्रवाई के लिए ज़रूरी है.
इस सेक्शन में, आपके ऐप्लिकेशन में अनुमतियों का असरदार तरीके से इस्तेमाल करने के लिए, सबसे सही तरीकों का एक सेट दिया गया है. Android पर अनुमतियों का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन की अनुमतियों के लिए सबसे सही तरीके वाला पेज देखें.
कम से कम अनुमतियों का अनुरोध करें
जब उपयोगकर्ता आपके ऐप्लिकेशन में किसी कार्रवाई का अनुरोध करता है, तो आपके ऐप्लिकेशन को सिर्फ़ उन अनुमतियों का अनुरोध करना चाहिए जिनकी ज़रूरत उस कार्रवाई को पूरा करने के लिए होती है. इस आधार पर कि अनुमतियों का इस्तेमाल कैसे किया जा रहा है, आपके ऐप्लिकेशन के इस्तेमाल के उदाहरण को पूरा करने का कोई और तरीका हो सकता है. इसके लिए, संवेदनशील जानकारी को ऐक्सेस करने की ज़रूरत नहीं होगी.
रनटाइम की अनुमतियों को खास कार्रवाइयों से जोड़ना
ऐप्लिकेशन के इस्तेमाल के दौरान, जितनी देर हो सके उतनी देर बाद अनुमतियों का अनुरोध करें. उदाहरण के लिए, अगर आपका ऐप्लिकेशन लोगों को ऑडियो मैसेज भेजने की सुविधा देता है, तो तब तक इंतज़ार करें, जब तक उपयोगकर्ता मैसेज भेजने वाली स्क्रीन पर न पहुंच जाए और ऑडियो मैसेज भेजें बटन को न दबा दे. उपयोगकर्ता के बटन दबाने के बाद, आपका ऐप्लिकेशन माइक्रोफ़ोन का ऐक्सेस मांग सकता है.
अपने ऐप्लिकेशन की डिपेंडेंसी के बारे में जानें
लाइब्रेरी को शामिल करने पर, आपको उसकी अनुमति की शर्तों को भी पूरा करना पड़ेगा. आपको यह जानकारी होनी चाहिए कि हर डिपेंडेंसी के लिए कौनसी अनुमतियां ज़रूरी हैं और उन अनुमतियों का इस्तेमाल कहां होता है.
सही जानकारी दें
जब आप अनुमतियों के लिए अनुरोध करें, तो साफ़ तौर पर बताएं कि आपको किस काम के लिए, क्या ऐक्सेस करना है. साथ ही, यह भी बताएं कि अगर अनुमतियां नहीं दी जाती हैं, तो कौनसी सुविधाएं काम नहीं करेंगी. इससे उपयोगकर्ता सही फ़ैसले ले सकते हैं.
सिस्टम के ऐक्सेस साफ़ तौर पर बताएं
जब संवेदनशील डेटा या हार्डवेयर (जैसे, कैमरा या माइक्रोफ़ोन) को ऐक्सेस किया जाता है, तब अपने ऐप्लिकेशन में लगातार जानकारी दें. ऐसा तब करें, जब सिस्टम ये इंडिकेटर पहले से नहीं दिखा रहा हो. इस रिमाइंडर से लोगों को यह समझने में मदद मिलती है कि आपका ऐप्लिकेशन, पाबंदी वाला डेटा कब ऐक्सेस करता है या पाबंदी वाली कार्रवाइयां कब करता है.
सिस्टम कॉम्पोनेंट में अनुमतियां
अनुमतियां सिर्फ़ सिस्टम के फ़ंक्शन के लिए अनुरोध करने के लिए नहीं होती हैं. आपके ऐप्लिकेशन के सिस्टम कॉम्पोनेंट, यह तय कर सकते हैं कि कौनसे अन्य ऐप्लिकेशन आपके ऐप्लिकेशन के साथ इंटरैक्ट कर सकते हैं. इसके बारे में, अन्य ऐप्लिकेशन के साथ इंटरैक्शन को सीमित करने के तरीके से जुड़े पेज पर बताया गया है.