Android

Android में परमिशन कैसे माँगें और संभालें

Android 5.1 Lollipop, Android ऑपरेटिंग सिस्टम का वह संस्करण है जो 2015 में जारी हुआ था। Android 5.1 और उसके बाद के संस्करणों में ऐप आपके डिवाइस की कुछ सुविधाओं या डेटा तक पहुँचने के लिए परमिशन माँग सकते हैं। उदाहरण के लिए, कोई ऐप आपका लोकेशन डेटा देखने, कैमरा इस्तेमाल करने या आपके कॉन्टैक्ट्स तक पहुँचने की अनुमति माँग सकता है।

Android ऐप में कोई परमिशन माँगने के लिए आप Android सपोर्ट लाइब्रेरी की ActivityCompat क्लास की requestPermissions मेथड इस्तेमाल कर सकते हैं। यह मेथड एक Activity ऑब्जेक्ट और उन परमिशन को दर्शाने वाली स्ट्रिंग्स का ऐरे लेती है जिन्हें आप माँगना चाहते हैं।

Android ऐप में CAMERA परमिशन इस तरह माँगी जा सकती है:

// Check if the camera permission has been granted
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
        != PackageManager.PERMISSION_GRANTED) {
    // If the permission has not been granted, request it
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.CAMERA},
            REQUEST_CAMERA_PERMISSION);
} else {
    // If the permission has already been granted, proceed with the app's logic
    // that requires the camera.
}

REQUEST_CAMERA_PERMISSION कॉन्स्टैंट एक अद्वितीय पूर्णांक है जिसे आप अपने ऐप में परिभाषित करते हैं। जब ऐप को परमिशन रिक्वेस्ट का नतीजा मिलता है, तब इससे रिक्वेस्ट की पहचान की जाती है।

आप अपनी Activity की onRequestPermissionsResult मेथड में परमिशन रिक्वेस्ट का नतीजा संभाल सकते हैं। यह मेथड तब बुलाई जाती है जब यूज़र रिक्वेस्ट पर जवाब देता है। वहाँ आप नतीजा जाँचकर अपने ऐप में उचित एक्शन कर सकते हैं।

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
        @NonNull int[] grantResults) {
    if (requestCode == REQUEST_CAMERA_PERMISSION) {
        // If the request was successful, proceed with the app's logic that requires the camera
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // Permission was granted, proceed with the app's logic that requires the camera
        } else {
            // Permission was denied, show a message to the user
            Toast.makeText(this, "Camera permission is required to use this feature",
                    Toast.LENGTH_SHORT).show();
        }
    }
}

ध्यान रखें कि कोई परमिशन माँगने से पहले उसे ऐप की मैनिफ़ेस्ट फ़ाइल में घोषित करना ज़रूरी है। इसके लिए मैनिफ़ेस्ट फ़ाइल में uses-permission एलिमेंट जोड़ें। उदाहरण के लिए, CAMERA परमिशन माँगने के लिए मैनिफ़ेस्ट फ़ाइल में यह एलिमेंट जोड़ें:

<uses-permission android:name="android.permission.CAMERA" />

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

ऐप्स को कौन-सी परमिशन देनी हैं, यह सोच-समझकर तय करना ज़रूरी है, क्योंकि कुछ परमिशन देने से ऐप को संवेदनशील जानकारी तक पहुँच मिल सकती है या वह आपके डिवाइस पर एक्शन कर सकता है। हमेशा बेहतर है कि परमिशन केवल उन्हीं ऐप्स को दें जिन पर आपको भरोसा हो और जिनके पास उसकी ज़रूरत का वाजिब कारण हो।

इस ट्यूटोरियल में हमने Android में परमिशन माँगने और संभालने की बुनियादी बातें देखीं। हमने सीखा कि कैसे जाँचें कि परमिशन मिली है या नहीं, परमिशन कैसे माँगें और रिक्वेस्ट का नतीजा कैसे संभालें। हमने यह भी देखा कि ऐप की मैनिफ़ेस्ट फ़ाइल में परमिशन कैसे घोषित करें।

अब जब आप Android में परमिशन के साथ काम करना बेहतर समझ गए हैं, तो इन अवधारणाओं को अपने ऐप में आज़माइए। Android परमिशन के बारे में और जानना चाहें तो ऑनलाइन कई संसाधन उपलब्ध हैं, जिनमें Android दस्तावेज़ और डेवलपर गाइड शामिल हैं। थोड़े अभ्यास और कुछ अतिरिक्त शोध से आप अपने Android ऐप्स में परमिशन मैनेजमेंट के विशेषज्ञ बन जाएँगे।