অনুমতিগুলি কেবল সিস্টেম কার্যকারিতা অনুরোধ করার জন্য নয়। আপনি অন্যান্য অ্যাপগুলি কীভাবে আপনার অ্যাপের উপাদানগুলির সাথে ইন্টারঅ্যাক্ট করতে পারে তাও সীমাবদ্ধ করতে পারেন।
এই নির্দেশিকাটি ব্যাখ্যা করে যে অন্য অ্যাপ কর্তৃক ঘোষিত অনুমতিগুলির সেট কীভাবে পরীক্ষা করবেন। নির্দেশিকাটি ব্যাখ্যা করে যে কীভাবে আপনি কার্যকলাপ, পরিষেবা, সামগ্রী সরবরাহকারী এবং সম্প্রচার রিসিভারগুলিকে কনফিগার করতে পারেন যাতে অন্যান্য অ্যাপগুলি আপনার অ্যাপের সাথে কীভাবে ইন্টারঅ্যাক্ট করতে পারে তা সীমাবদ্ধ করা যায়।
অন্য অ্যাপের অনুমতি পরীক্ষা করুন
অন্য অ্যাপ কর্তৃক ঘোষিত অনুমতিগুলির সেট দেখতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করতে একটি ডিভাইস বা এমুলেটর ব্যবহার করুন:
- একটি অ্যাপের অ্যাপ তথ্য স্ক্রিন খুলুন।
 অনুমতি নির্বাচন করুন। অ্যাপ অনুমতি স্ক্রিন লোড হয়।
এই স্ক্রিনটি অনুমতি গোষ্ঠীর একটি সেট দেখায়। সিস্টেমটি একটি অ্যাপ কর্তৃক ঘোষিত অনুমতিগুলির সেটকে এই গোষ্ঠীগুলিতে সংগঠিত করে।
অনুমতি পরীক্ষা করার আরও বেশ কিছু কার্যকর উপায় রয়েছে:
-  কোনও পরিষেবাতে কল করার সময় অনুমতি পরীক্ষা করার জন্য, 
Context.checkCallingPermission()এ একটি অনুমতি স্ট্রিং পাস করুন। এই পদ্ধতিটি একটি পূর্ণসংখ্যা প্রদান করে যা নির্দেশ করে যে বর্তমান কলিং প্রক্রিয়ায় সেই অনুমতি দেওয়া হয়েছে কিনা। মনে রাখবেন যে এটি কেবল তখনই ব্যবহার করা যেতে পারে যখন আপনি অন্য কোনও প্রক্রিয়া থেকে আসা কলটি কার্যকর করছেন, সাধারণত কোনও পরিষেবা থেকে প্রকাশিত একটি IDL ইন্টারফেসের মাধ্যমে অথবা অন্য কোনও প্রক্রিয়ায় প্রদত্ত অন্য কোনও উপায়ে। -  অন্য কোনও প্রক্রিয়াকে নির্দিষ্ট অনুমতি দেওয়া হয়েছে কিনা তা পরীক্ষা করতে, প্রক্রিয়া আইডি (PID) 
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 এর ডেটা অ্যাক্সেস করতে পারবে তা সীমাবদ্ধ করুন। (কন্টেন্ট প্রোভাইডারদের কাছে URI permissions নামে একটি গুরুত্বপূর্ণ অতিরিক্ত সুরক্ষা সুবিধা রয়েছে, যা নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে।) অন্যান্য উপাদানগুলির থেকে ভিন্ন, আপনি কন্টেন্ট প্রোভাইডারদের জন্য দুটি পৃথক অনুমতি বৈশিষ্ট্য সেট করতে পারেন: android:readPermission প্রদানকারীর কাছ থেকে অন্য কোন অ্যাপ পড়তে পারবে তা সীমাবদ্ধ করে এবং android:writePermission কোন কোন অ্যাপ এতে লিখতে পারবে তা সীমাবদ্ধ করে। মনে রাখবেন যে যদি কোনও প্রোভাইডার পঠন এবং লেখা উভয় অনুমতি দিয়ে সুরক্ষিত থাকে, তবে শুধুমাত্র লেখার অনুমতি ধরে রাখলে কোনও অ্যাপ কোনও প্রোভাইডার থেকে পড়তে পারবে না।
 যখন প্রোভাইডারটি প্রথমবার পুনরুদ্ধার করা হয় এবং যখন কোনও অ্যাপ প্রোভাইডারে কাজ করে তখন অনুমতিগুলি পরীক্ষা করা হয়। যদি অনুরোধকারী অ্যাপটির উভয় অনুমতি না থাকে, তাহলে একটি SecurityException ঘটে। ContentResolver.query() ব্যবহার করার জন্য পড়ার অনুমতি প্রয়োজন; ContentResolver.insert() , ContentResolver.update() , অথবা ContentResolver.delete() ব্যবহার করার জন্য লেখার অনুমতি প্রয়োজন। এই সমস্ত ক্ষেত্রে, প্রয়োজনীয় অনুমতি ধরে না রাখার ফলে একটি SecurityException তৈরি হয়।
প্রতি-URI ভিত্তিতে অ্যাক্সেস দিন
 এই সিস্টেমটি আপনাকে অন্যান্য অ্যাপ কীভাবে আপনার অ্যাপের কন্টেন্ট প্রোভাইডারদের অ্যাক্সেস করতে পারে তার উপর অতিরিক্ত সূক্ষ্ম নিয়ন্ত্রণ প্রদান করে। বিশেষ করে, আপনার কন্টেন্ট প্রোভাইডার পঠন এবং লেখার অনুমতি দিয়ে নিজেকে সুরক্ষিত রাখতে পারে এবং একই সাথে তার সরাসরি ক্লায়েন্টদের অন্যান্য অ্যাপের সাথে নির্দিষ্ট URI শেয়ার করার অনুমতি দেয়। এই মডেলের জন্য আপনার অ্যাপের সমর্থন ঘোষণা করতে, android:grantUriPermissions অ্যাট্রিবিউট অথবা <grant-uri-permission> এলিমেন্ট ব্যবহার করুন।
 আপনি প্রতি-URI ভিত্তিতেও অনুমতি দিতে পারেন। কোনও কার্যকলাপ শুরু করার সময় বা কোনও কার্যকলাপে ফলাফল ফেরত দেওয়ার সময়, Intent.FLAG_GRANT_READ_URI_PERMISSION ইন্টেন্ট ফ্ল্যাগ, Intent.FLAG_GRANT_WRITE_URI_PERMISSION ইন্টেন্ট ফ্ল্যাগ, অথবা উভয় ফ্ল্যাগ সেট করুন। এটি অন্যান্য অ্যাপগুলিকে যথাক্রমে ইনটেন্টে অন্তর্ভুক্ত ডেটা URI-এর জন্য পড়ার, লেখার, অথবা পড়ার এবং লেখার অনুমতি দেয়। অন্যান্য অ্যাপগুলি নির্দিষ্ট URI-এর জন্য এই অনুমতিগুলি লাভ করে, তা নির্বিশেষে তাদের কন্টেন্ট প্রদানকারীর ডেটা অ্যাক্সেস করার অনুমতি থাকুক বা না থাকুক।
 উদাহরণস্বরূপ, ধরুন একজন ব্যবহারকারী আপনার অ্যাপ ব্যবহার করে একটি ছবি সংযুক্তি সহ একটি ইমেল দেখছেন। অন্যান্য অ্যাপগুলি সাধারণত ইমেলের বিষয়বস্তু অ্যাক্সেস করতে সক্ষম হবে না, তবে তারা ছবিটি দেখতে আগ্রহী হতে পারে। আপনার অ্যাপটি একটি ছবি দেখার অ্যাপকে ছবিটি দেখতে দেওয়ার জন্য একটি ইন্টেন্ট এবং Intent.FLAG_GRANT_READ_URI_PERMISSION ইন্টেন্ট ফ্ল্যাগ ব্যবহার করতে পারে।
আরেকটি বিবেচ্য বিষয় হল অ্যাপের দৃশ্যমানতা । যদি আপনার অ্যাপটি অ্যান্ড্রয়েড ১১ (এপিআই লেভেল ৩০) বা তার উচ্চতর ভার্সনের হয়, তাহলে সিস্টেমটি কিছু অ্যাপকে স্বয়ংক্রিয়ভাবে আপনার অ্যাপে দৃশ্যমান করে এবং ডিফল্টভাবে অন্যান্য অ্যাপ লুকিয়ে রাখে। যদি আপনার অ্যাপের একটি কন্টেন্ট প্রোভাইডার থাকে এবং অন্য অ্যাপকে URI অনুমতি দেয়, তাহলে আপনার অ্যাপটি স্বয়ংক্রিয়ভাবে সেই অন্য অ্যাপে দৃশ্যমান হবে ।
 আরও তথ্যের জন্য, grantUriPermission() , revokeUriPermission() , এবং checkUriPermission() পদ্ধতিগুলির রেফারেন্স উপাদান দেখুন।
আপনার অ্যাপের ব্রডকাস্ট রিসিভারের সাথে ইন্টারঅ্যাকশন সীমিত করুন
 <receiver> ট্যাগের android:permission অ্যাট্রিবিউট ব্যবহার করে কোন কোন অ্যাপ সংশ্লিষ্ট BroadcastReceiver এ সম্প্রচার পাঠাতে পারে তা সীমাবদ্ধ করুন। Context.sendBroadcast() রিটার্ন করার পর সিস্টেম অনুমতি পরীক্ষা করে, কারণ সিস্টেমটি প্রদত্ত রিসিভারে জমা দেওয়া সম্প্রচারটি সরবরাহ করার চেষ্টা করে। এর অর্থ হল অনুমতি ব্যর্থতার ফলে কোনও ব্যতিক্রম কলারের কাছে ফেরত পাঠানো হয় না - এটি কেবল Intent সরবরাহ করে না।
আপনি প্রোগ্রাম্যাটিকভাবে অনুমতিগুলি কনফিগার করতে পারেন:
-  প্রোগ্রাম্যাটিকভাবে নিবন্ধিত রিসিভারে অন্য কোন অ্যাপ সম্প্রচার করতে পারে তা নিয়ন্ত্রণ করতে: 
Context.registerReceiver()কে একটি অনুমতি প্রদান করুন। -  কোন ব্রডকাস্ট রিসিভাররা ব্রডকাস্ট গ্রহণ করতে পারবে তা সীমাবদ্ধ করতে: 
Context.sendBroadcast()কল করার সময় একটি অনুমতি প্রদান করুন। 
মনে রাখবেন যে একজন রিসিভার এবং একজন সম্প্রচারক উভয়েরই অনুমতির প্রয়োজন হতে পারে। যখন এটি ঘটে, তখন সংশ্লিষ্ট লক্ষ্যবস্তুতে বিতরণের উদ্দেশ্যে উভয় অনুমতি পরীক্ষা পাস করতে হবে। আরও তথ্যের জন্য, অনুমতি সহ সম্প্রচার সীমাবদ্ধ করা দেখুন।