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