अनुमतियां सिर्फ़ सिस्टम फ़ंक्शन के लिए अनुरोध करने के लिए नहीं होती हैं. आपके पास यह भी तय करने का विकल्प होता है कि अन्य ऐप्लिकेशन, आपके ऐप्लिकेशन के कॉम्पोनेंट के साथ कैसे इंटरैक्ट कर सकते हैं.
इस गाइड में, यह देखने का तरीका बताया गया है कि किसी दूसरे ऐप्लिकेशन ने अनुमतियों का कौन-कौनसा सेट तय किया है. इस गाइड में यह भी बताया गया है कि गतिविधियों, सेवाओं, कॉन्टेंट प्रोवाइडर, और ब्रॉडकास्ट रिसीवर को कॉन्फ़िगर करके, यह कैसे तय किया जा सकता है कि अन्य ऐप्लिकेशन आपके ऐप्लिकेशन के साथ कैसे इंटरैक्ट कर सकते हैं.
किसी दूसरे ऐप्लिकेशन की अनुमतियां देखना
किसी दूसरे ऐप्लिकेशन की ओर से दी गई अनुमतियों का सेट देखने के लिए, डिवाइस या एम्युलेटर का इस्तेमाल करके यह तरीका अपनाएं:
- किसी ऐप्लिकेशन की ऐप्लिकेशन की जानकारी स्क्रीन खोलें.
 अनुमतियां चुनें. ऐप्लिकेशन अनुमतियां स्क्रीन लोड होती है.
इस स्क्रीन पर, अनुमति ग्रुप का सेट दिखाया गया है. सिस्टम, ऐप्लिकेशन की ओर से एलान की गई अनुमतियों के सेट को इन ग्रुप में व्यवस्थित करता है.
अनुमतियां देखने के लिए, यहां कुछ अन्य तरीके दिए गए हैं:
- किसी सेवा में कॉल के दौरान अनुमति की जांच करने के लिए, 
Context.checkCallingPermission()में अनुमति स्ट्रिंग पास करें. यह तरीका एक पूर्णांक दिखाता है. इससे पता चलता है कि मौजूदा कॉलिंग प्रोसेस को अनुमति दी गई है या नहीं. ध्यान दें कि इसका इस्तेमाल सिर्फ़ तब किया जा सकता है, जब किसी दूसरी प्रोसेस से आने वाले कॉल को लागू किया जा रहा हो. आम तौर पर, यह किसी सेवा से पब्लिश किए गए आईडीएल इंटरफ़ेस या किसी अन्य तरीके से दूसरी प्रोसेस को दिया जाता है. - यह देखने के लिए कि किसी दूसरी प्रोसेस को कोई खास अनुमति दी गई है या नहीं, प्रोसेस आईडी (पीआईडी) को 
Context.checkPermission()में पास करें. - यह देखने के लिए कि किसी दूसरे पैकेज को कोई खास अनुमति दी गई है या नहीं, 
PackageManager.checkPermission()में पैकेज का नाम पास करें. 
ऐप्लिकेशन की गतिविधियों के साथ इंटरैक्शन पर पाबंदी लगाना
मेनिफ़ेस्ट में, <activity> टैग की android:permission एट्रिब्यूट का इस्तेमाल करके, यह तय करें कि कौनसे दूसरे ऐप्लिकेशन उस Activity को शुरू कर सकते हैं. इस अनुमति की जांच Context.startActivity() और Activity.startActivityForResult() के दौरान की जाती है. अगर कॉलर के पास ज़रूरी अनुमति नहीं है, तो SecurityException होता है.
अपने ऐप्लिकेशन की सेवाओं के साथ इंटरैक्शन पर पाबंदी लगाना
मेनिफ़ेस्ट में, <service> टैग के android:permission एट्रिब्यूट का इस्तेमाल करके, यह तय करें कि कौनसे अन्य ऐप्लिकेशन, Service से जुड़ सकते हैं या उसे शुरू कर सकते हैं. अनुमति की जांच इन कार्रवाइयों के दौरान की जाती है: Context.startService(), Context.stopService(), और Context.bindService(). अगर कॉल करने वाले व्यक्ति के पास ज़रूरी अनुमति नहीं है, तो SecurityException होता है.
ऐप्लिकेशन के कॉन्टेंट देने वालों के साथ इंटरैक्शन पर पाबंदी लगाना
मेनिफ़ेस्ट में, <provider> टैग के android:permission एट्रिब्यूट का इस्तेमाल करके, यह तय करें कि ContentProvider में मौजूद डेटा को कौनसे अन्य ऐप्लिकेशन ऐक्सेस कर सकते हैं.
(कॉन्टेंट उपलब्ध कराने वालों के पास, सुरक्षा से जुड़ी एक अहम सुविधा उपलब्ध होती है. इसे यूआरआई अनुमतियां कहा जाता है. इसके बारे में यहां बताया गया है.)
अन्य कॉम्पोनेंट के उलट, कॉन्टेंट देने वाली कंपनियों के लिए दो अलग-अलग अनुमति एट्रिब्यूट सेट किए जा सकते हैं: android:readPermission से यह तय किया जाता है कि कौनसे अन्य ऐप्लिकेशन, कॉन्टेंट देने वाली कंपनी से कॉन्टेंट पढ़ सकते हैं. वहीं, android:writePermission से यह तय किया जाता है कि कौनसे अन्य ऐप्लिकेशन, कॉन्टेंट देने वाली कंपनी को कॉन्टेंट लिख सकते हैं. ध्यान दें कि अगर किसी प्रोवाइडर को पढ़ने और लिखने, दोनों की अनुमति से सुरक्षित किया गया है, तो सिर्फ़ लिखने की अनुमति होने पर, कोई ऐप्लिकेशन किसी प्रोवाइडर से डेटा नहीं पढ़ सकता.
अनुमतियों की जांच तब की जाती है, जब पहली बार प्रोवाइडर को वापस पाया जाता है. साथ ही, तब भी जांच की जाती है, जब कोई ऐप्लिकेशन प्रोवाइडर पर कार्रवाइयां करता है. अगर अनुरोध करने वाले ऐप्लिकेशन के पास इनमें से कोई भी अनुमति नहीं है, तो SecurityException होता है. ContentResolver.query() का इस्तेमाल करने के लिए, पढ़ने की अनुमति ज़रूरी है. ContentResolver.insert(), ContentResolver.update() या ContentResolver.delete() का इस्तेमाल करने के लिए, लिखने की अनुमति ज़रूरी है. इन सभी मामलों में, ज़रूरी अनुमति न होने पर SecurityException दिखता है.
हर यूआरआई के हिसाब से ऐक्सेस देना
सिस्टम आपको इस बात पर ज़्यादा कंट्रोल देता है कि दूसरे ऐप्लिकेशन, आपके ऐप्लिकेशन के कॉन्टेंट प्रोवाइडर को कैसे ऐक्सेस कर सकते हैं. खास तौर पर, आपका कॉन्टेंट देने वाला व्यक्ति या कंपनी, पढ़ने और लिखने की अनुमतियों के साथ खुद को सुरक्षित रख सकती है. साथ ही, अपने सीधे क्लाइंट को अन्य ऐप्लिकेशन के साथ कुछ यूआरआई शेयर करने की अनुमति दे सकती है. अपने ऐप्लिकेशन के लिए इस मॉडल के साथ काम करने की सुविधा का एलान करने के लिए, android:grantUriPermissions एट्रिब्यूट या <grant-uri-permission> एलिमेंट का इस्तेमाल करें.
हर यूआरआई के हिसाब से भी अनुमतियां दी जा सकती हैं. कोई गतिविधि शुरू करते समय या किसी गतिविधि का नतीजा वापस लाते समय, Intent.FLAG_GRANT_READ_URI_PERMISSION इंटेंट फ़्लैग, Intent.FLAG_GRANT_WRITE_URI_PERMISSION इंटेंट फ़्लैग या दोनों फ़्लैग सेट करें. इससे अन्य ऐप्लिकेशन को, इंटेंट में शामिल डेटा यूआरआई के लिए, पढ़ने, लिखने या पढ़ने और लिखने की अनुमतियां मिलती हैं. अन्य ऐप्लिकेशन को, किसी खास यूआरआई के लिए ये अनुमतियां मिलती हैं. इससे कोई फ़र्क़ नहीं पड़ता कि उनके पास कॉन्टेंट देने वाले ऐप्लिकेशन में मौजूद डेटा को ऐक्सेस करने की अनुमति है या नहीं.
उदाहरण के लिए, मान लें कि कोई व्यक्ति आपके ऐप्लिकेशन का इस्तेमाल करके, इमेज अटैचमेंट वाला ईमेल देख रहा है. आम तौर पर, अन्य ऐप्लिकेशन को ईमेल का कॉन्टेंट ऐक्सेस करने की अनुमति नहीं होनी चाहिए. हालांकि, वे इमेज देखने में दिलचस्पी दिखा सकते हैं. आपका ऐप्लिकेशन, इमेज दिखाने वाले ऐप्लिकेशन को इमेज दिखाने के लिए, इंटेंट और Intent.FLAG_GRANT_READ_URI_PERMISSION इंटेंट फ़्लैग का इस्तेमाल कर सकता है.
एक और ज़रूरी बात यह है कि ऐप्लिकेशन दिखने की स्थिति क्या है. अगर आपका ऐप्लिकेशन, Android 11 (एपीआई लेवल 30) या उसके बाद के वर्शन को टारगेट करता है, तो सिस्टम कुछ ऐप्लिकेशन को आपके ऐप्लिकेशन के लिए अपने-आप दिखने की अनुमति देता है. साथ ही, डिफ़ॉल्ट रूप से अन्य ऐप्लिकेशन को छिपा देता है. अगर आपके ऐप्लिकेशन में कॉन्टेंट उपलब्ध कराने वाला कोई कॉम्पोनेंट है और उसने किसी दूसरे ऐप्लिकेशन को यूआरआई की अनुमतियां दी हैं, तो आपका ऐप्लिकेशन उस दूसरे ऐप्लिकेशन को अपने-आप दिखने लगता है.
ज़्यादा जानकारी के लिए, grantUriPermission(), revokeUriPermission(), और checkUriPermission() तरीकों के लिए रेफ़रंस मटीरियल देखें.
अपने ऐप्लिकेशन के ब्रॉडकास्ट रिसीवर के साथ इंटरैक्शन को सीमित करना
<receiver> टैग के android:permission एट्रिब्यूट का इस्तेमाल करके, यह तय करें कि कौनसे अन्य ऐप्लिकेशन, BroadcastReceiver से जुड़े ब्रॉडकास्ट भेज सकते हैं. सिस्टम, Context.sendBroadcast() के जवाब मिलने के बाद अनुमति की जांच करता है. ऐसा इसलिए, क्योंकि सिस्टम सबमिट किए गए ब्रॉडकास्ट को दिए गए रिसीवर तक पहुंचाने की कोशिश करता है. इसका मतलब है कि अनुमति न मिलने पर, कॉलर को कोई अपवाद नहीं भेजा जाता. हालांकि, इससे Intent नहीं मिलता.
अनुमतियों को प्रोग्राम के हिसाब से भी कॉन्फ़िगर किया जा सकता है:
- यह कंट्रोल करने के लिए कि कौनसे अन्य ऐप्लिकेशन, प्रोग्राम के हिसाब से रजिस्टर किए गए रिसीवर को ब्रॉडकास्ट कर सकते हैं: 
Context.registerReceiver()को अनुमति दें. - यह तय करने के लिए कि कौनसे ब्रॉडकास्ट रिसीवर, ब्रॉडकास्ट रिसीव कर सकते हैं: 
Context.sendBroadcast()को कॉल करते समय अनुमति दें. 
ध्यान दें कि ब्रॉडकास्ट देखने वाले और ब्रॉडकास्ट करने वाले, दोनों को अनुमति की ज़रूरत पड़ सकती है. ऐसा होने पर, इंटेंट को टारगेट डिवाइस तक पहुंचाने के लिए, अनुमति से जुड़ी दोनों जांचों में पास होना ज़रूरी है. ज़्यादा जानकारी के लिए, अनुमतियों के साथ ब्रॉडकास्ट करने पर पाबंदी लगाना लेख पढ़ें.