जैसा कि इस्तेमाल करने के लिए वर्कफ़्लो में बताया गया है अनुमतियां, अगर आपका ऐप्लिकेशन, ऐप्लिकेशन का अनुरोध करता है तो आपको अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में इन अनुमतियों के बारे में बताना होगा. इन एलान से, ऐप स्टोर और उपयोगकर्ताओं को यह समझने में मदद मिलती है कि किन-किन चीज़ों के लिए अनुमतियां दी जाती हैं की सीमा पार हो जाए, तो आपका ऐप्लिकेशन अनुरोध कर सकता है.
अनुमति के लिए अनुरोध करने की प्रोसेस, इस बात पर निर्भर करती है कि अनुमति:
- अगर अनुमति इंस्टॉल-टाइम के लिए है अनुमति, जैसे कि सामान्य की अनुमति है, तो अनुमति इंस्टॉल समय.
- अगर अनुमति एक रनटाइम है अनुमति या खास अनुमति और अगर आपका ऐप्लिकेशन अगर किसी ऐसे डिवाइस पर इंस्टॉल किया गया है जो Android 6.0 (एपीआई लेवल 23) या उसके बाद के वर्शन पर काम करता है, तो आपको ऐसा करना होगा. रनटाइम की अनुमति या खास अनुमति के लिए अनुरोध करें अनुमति खुद दें.
ऐप्लिकेशन मेनिफ़ेस्ट में एलान जोड़ें
आपका ऐप्लिकेशन जिस अनुमति का अनुरोध कर सकता है उसका एलान करने के लिए, सही जानकारी शामिल करें
<uses-permission>
एलिमेंट में
की मेनिफ़ेस्ट फ़ाइल में दी गई है. उदाहरण के लिए, कोई ऐसा ऐप्लिकेशन जिसे कैमरे को ऐक्सेस करने की ज़रूरत होती है
AndroidManifest.xml
में यह पंक्ति है:
<manifest ...> <uses-permission android:name="android.permission.CAMERA"/> <application ...> ... </application> </manifest>
हार्डवेयर को 'शामिल होना ज़रूरी नहीं है' के तौर पर बताएं
कुछ अनुमतियां, जैसे कि
CAMERA
, अपने ऐप्लिकेशन को अनुमति दें
हार्डवेयर के उन हिस्सों को ऐक्सेस करना जो सिर्फ़ कुछ Android डिवाइसों में ही होते हैं. अगर आपका ऐप्लिकेशन
इनमें से किसी एक हार्डवेयर से जुड़े होने का एलान करता है
अनुमतियां हैं,
यह देखें कि क्या आपका ऐप्लिकेशन अब भी किसी ऐसे डिवाइस पर चल सकता है जिसमें वह
हार्डवेयर. ज़्यादातर मामलों में, हार्डवेयर वैकल्पिक होता है, इसलिए बेहतर होगा कि
हार्डवेयर की जानकारी देने के लिए, android:required
को false
पर सेट करें
<uses-feature>
एलान, इस तरह से करें
AndroidManifest.xml
फ़ाइल ��े नीचे दिए गए कोड स्निपेट में दिखाया गया है:
<manifest ...> <application> ... </application> <uses-feature android:name="android.hardware.camera" android:required="false" /> <manifest>अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
हार्डवेयर की उपलब्धता के बारे में जानकारी
अगर हार्डवेयर को वैकल्पिक के तौर पर एलान किया जाता है, तो हो सकता है कि आपका ऐप्लिकेशन किसी
ऐसा डिवाइस जिसमें वह हार्डवेयर नहीं है. यह पता लगाने के लिए कि डिवाइस में कोई ख़ास
हार्डवेयर का हिस्सा है, तो इसका इस्तेमाल
hasSystemFeature()
तरीका, जैसा कि नीचे दिए गए कोड स्निपेट में दिखाया गया है. अगर हार्डवेयर मौजूद नहीं है,
अपने ऐप्लिकेशन में उस सुविधा को बंद कर दें.
Kotlin
// Check whether your app is running on a device that has a front-facing camera. if (applicationContext.packageManager.hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { // Continue with the part of your app's workflow that requires a // front-facing camera. } else { // Gracefully degrade your app experience. }
Java
// Check whether your app is running on a device that has a front-facing camera. if (getApplicationContext().getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { // Continue with the part of your app's workflow that requires a // front-facing camera. } else { // Gracefully degrade your app experience. }
एपीआई लेवल के हिसाब से अनुमतियों का एलान करना
सिर्फ़ रनटाइम की अनुमतियों की सुविधा वाले डिवाइस पर अनुमति का एलान करने के लिए—
Android 6.0 (एपीआई लेवल 23) या इसके बाद के वर्शन वाले डिवाइसों में
<uses-permission-sdk-23>
के बजाय
<uses-permission>
एलिमेंट.
इनमें से किसी भी एलिमेंट का इस्तेमाल करते समय, maxSdkVersion
एट्रिब्यूट को सेट किया जा सकता है
यह बताने के लिए कि Android के वर्शन वाले डिवाइस
बताई गई वैल्यू के लिए किस�� खास अनुमति की ज़रूरत नहीं है. इससे आपको
यह सुविधा काम करते हुए भी गै़र-ज़रूरी अनुमतियों को खत्म कर सकती है
पुराने डिवाइसों के लिए.
उदाहरण के लिए, आपका ऐप्लिकेशन फ़ोटो जैसा मीडिया कॉन्टेंट दिखा सकता है
या वीडियो जिन्हें उपयोगकर्ता ने आपके ऐप्लिकेशन में बनाया है. ऐसी स्थिति में,
आपको इसका इस्तेमाल करने की ज़रूरत नहीं है
READ_EXTERNAL_STORAGE
उन डिवाइसों पर अनुमति
आपका ऐप्लिकेशन, Android 10 (एपीआई लेवल 29) या उसके बाद के वर्शन पर काम करता हो. ऐसा तब तक होगा, जब तक आपका ऐप्लिकेशन टारगेट करता है
Android 10 या इसके बाद का वर्शन होना चाहिए. हालांकि, पुराने डिवाइसों के साथ काम करने के लिए,
आपके पास READ_EXTERNAL_STORAGE
की अनुमति का एलान करने और
android:maxSdkVersion
से 28.