অ্যাপের অনুমতি ঘোষণা করুন

অনুমতি ব্যবহার করার জন্য কর্মপ্রবাহে উল্লিখিত হিসাবে, যদি আপনার অ্যাপ অ্যাপ অনুমতির অনুরোধ করে, তাহলে আপনাকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্ট ফাইলে এই অনুমতিগুলি ঘোষণা করতে হবে। এই ঘোষণাগুলি অ্যাপ স্টোর এবং ব্যবহারকারীদের অনুমতির সেট বুঝতে সাহায্য করে যা আপনার অ্যাপ অনুরোধ করতে পারে।

অনুমতির অনুরোধ করার প্রক্রিয়াটি অনুমতির ধরণের উপর নির্ভর করে:

অ্যাপ ম্যানিফেস্টে ঘোষণা যোগ করুন

আপনার অ্যাপ অনুরোধ করতে পারে এমন একটি অনুমতি ঘোষণা করতে, আপনার অ্যাপের ম্যানিফেস্ট ফাইলে উপযুক্ত <uses-permission> উপাদান অন্তর্ভুক্ত করুন। উদাহরণস্বরূপ, একটি অ্যাপ যাকে ক্যামেরা অ্যাক্সেস করতে হবে তার AndroidManifest.xml এ এই লাইনটি রয়েছে:

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

হার্ডওয়্যারকে ঐচ্ছিক হিসাবে ঘোষণা করুন

কিছু অনুমতি, যেমন CAMERA , আপনার অ্যাপকে হার্ডওয়্যারের টুকরোগুলি অ্যাক্সেস করতে দেয় যা শুধুমাত্র কিছু Android ডিভাইসে আছে। যদি আপনার অ্যাপ এই হার্ডওয়্যার-সম্পর্কিত অনুমতিগুলির মধ্যে একটি ঘোষণা করে, তাহলে আপনার অ্যাপটি এখনও সেই হার্ডওয়্যার নেই এমন কোনও ডিভাইসে চলতে পারে কিনা তা বিবেচনা করুন। বেশিরভাগ ক্ষেত্রে, হার্ডওয়্যার ঐচ্ছিক, তাই আপনার <uses-feature> ঘোষণায় android:required to false সেট করে হার্ডওয়্যারটিকে ঐচ্ছিক হিসেবে ঘোষণা করা ভালো, যেমনটি AndroidManifest.xml ফাইল থেকে নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

<manifest ...>
    <application>
        ...
    </application>
    <uses-feature android:name="android.hardware.camera"
                  android:required="false" />
<manifest>

হার্ডওয়্যারের প্রাপ্যতা নির্ধারণ করুন

আপনি যদি হার্ডওয়্যারটিকে ঐচ্ছিক হিসাবে ঘোষণা করেন, তাহলে আপনার অ্যাপটি এমন একটি ডিভাইসে চালানো সম্ভব যেখানে সেই হার্ডওয়্যারটি নেই৷ একটি ডিভাইসে একটি নির্দিষ্ট হার্ডওয়্যার আছে কিনা তা পরীক্ষা করতে, hasSystemFeature() পদ্ধতিটি ব্যবহার করুন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে। হার্ডওয়্যার উপলব্ধ না হলে, আপনার অ্যাপে সেই বৈশিষ্ট্যটি অক্ষম করুন।

কোটলিন

// 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.
}

জাভা

// 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.
}

API স্তর দ্বারা অনুমতি ঘোষণা

শুধুমাত্র রানটাইম অনুমতি সমর্থন করে এমন ডিভাইসগুলিতে অনুমতি ঘোষণা করতে—অর্থাৎ, Android 6.0 (API স্তর 23) বা উচ্চতর-চালিত ডিভাইসগুলিতে <uses-permission> উপাদানের পরিবর্তে <uses-permission-sdk-23> উপাদান অন্তর্ভুক্ত করুন।

এই উপাদানগুলির যেকোন একটি ব্যবহার করার সময়, আপনি নির্দিষ্ট মানের থেকে বেশি Android-এর সংস্করণ চালাচ্ছে এমন ডিভাইসগুলির একটি নির্দিষ্ট অনুমতির প্রয়োজন নেই তা নির্দেশ করার জন্য আপনি maxSdkVersion অ্যাট্রিবিউট সেট করতে পারেন৷ এটি আপনাকে পুরানো ডিভাইসগুলির জন্য সামঞ্জস্য প্রদান করার সময় অপ্রয়োজনীয় অনুমতিগুলি মুছে ফেলতে দেয়৷

উদাহরণস্বরূপ, আপনার অ্যাপটি আপনার অ্যাপে থাকাকালীন ব্যবহারকারী তৈরি করা ফটো বা ভিডিওর মতো মিডিয়া সামগ্রী দেখাতে পারে। এই পরিস্থিতিতে, Android 10 (API লেভেল 29) বা উচ্চতর চালায় এমন ডিভাইসগুলিতে আপনার READ_EXTERNAL_STORAGE অনুমতি ব্যবহার করার দরকার নেই, যতক্ষণ না আপনার অ্যাপটি Android 10 বা তার উচ্চতরকে লক্ষ্য করে। যাইহোক, পুরানো ডিভাইসগুলির সাথে সামঞ্জস্যের জন্য, আপনি READ_EXTERNAL_STORAGE অনুমতি ঘোষণা করতে পারেন এবং android:maxSdkVersion 28 এ সেট করতে পারেন৷