একটি বিশেষ অনুমতি সিস্টেম সংস্থানগুলিতে অ্যাক্সেস রক্ষা করে যা বিশেষভাবে সংবেদনশীল বা সরাসরি ব্যবহারকারীর গোপনীয়তার সাথে সম্পর্কিত নয়। এই অনুমতিগুলি ইনস্টল-টাইম অনুমতি এবং রানটাইম অনুমতিগুলির থেকে আলাদা৷
বিশেষ অনুমতির কিছু উদাহরণের মধ্যে রয়েছে:
- সঠিক অ্যালার্ম নির্ধারণ করা হচ্ছে।
- অন্যান্য অ্যাপের উপর প্রদর্শন এবং অঙ্কন করা।
- সমস্ত স্টোরেজ ডেটা অ্যাক্সেস করা হচ্ছে।
যে অ্যাপগুলি একটি বিশেষ অনুমতি ঘোষণা করে সেগুলি সিস্টেম সেটিংসের বিশেষ অ্যাপ অ্যাক্সেস পৃষ্ঠায় দেখানো হয় (চিত্র 1)। অ্যাপটিকে একটি বিশেষ অনুমতি দেওয়ার জন্য, একজন ব্যবহারকারীকে অবশ্যই এই পৃষ্ঠাটিতে নেভিগেট করতে হবে: সেটিংস > অ্যাপস > বিশেষ অ্যাপ অ্যাক্সেস ।
কর্মপ্রবাহ
একটি বিশেষ অনুমতির অনুরোধ করতে, নিম্নলিখিতগুলি করুন:
- আপনার অ্যাপের ম্যানিফেস্ট ফাইলে, বিশেষ অনুমতিগুলি ঘোষণা করুন যা আপনার অ্যাপকে অনুরোধ করতে হতে পারে৷
- আপনার অ্যাপের UX ডিজাইন করুন যাতে আপনার অ্যাপের নির্দিষ্ট ক্রিয়াগুলি নির্দিষ্ট বিশেষ অনুমতির সাথে যুক্ত থাকে। ব্যবহারকারীদের জানতে দিন যে কোন কাজগুলির জন্য তাদের ব্যক্তিগত ব্যবহারকারীর ডেটা অ্যাক্সেস করার জন্য আপনার অ্যাপের অনুমতি দেওয়ার প্রয়োজন হতে পারে৷
- ব্যবহারকারী আপনার অ্যাপে এমন টাস্ক বা অ্যাকশন শুরু করার জন্য অপেক্ষা করুন যার জন্য নির্দিষ্ট ব্যক্তিগত ব্যবহারকারীর ডেটাতে অ্যাক্সেস প্রয়োজন। সেই সময়ে, আপনার অ্যাপ সেই ডেটা অ্যাক্সেস করার জন্য প্রয়োজনীয় বিশেষ অনুমতির জন্য অনুরোধ করতে পারে।
- ব্যবহারকারী ইতিমধ্যে আপনার অ্যাপের জন্য প্রয়োজনীয় বিশেষ অনুমতি দিয়েছেন কিনা তা পরীক্ষা করুন। এটি করতে, প্রতিটি অনুমতির কাস্টম চেকিং ফাংশন ব্যবহার করুন। মঞ্জুর হলে, আপনার অ্যাপ ব্যক্তিগত ব্যবহারকারীর ডেটা অ্যাক্সেস করতে পারে। যদি না হয়, পরবর্তী ধাপে চালিয়ে যান। দ্রষ্টব্য: আপনাকে অবশ্যই পরীক্ষা করতে হবে যে প্রতিবার যখন আপনি একটি অপারেশন করেন যার জন্য সেই অনুমতির প্রয়োজন হয় তখন আপনার অনুমতি আছে কিনা।
- একটি UI উপাদানে ব্যবহারকারীর কাছে একটি যুক্তি উপস্থাপন করুন যা স্পষ্টভাবে ব্যাখ্যা করে যে আপনার অ্যাপ কোন ডেটা অ্যাক্সেস করার চেষ্টা করছে এবং অ্যাপটি ব্যবহারকারীকে বিশেষ অনুমতি দিলে তাদের কী সুবিধা দিতে পারে। উপরন্তু, যেহেতু আপনার অ্যাপ ব্যবহারকারীদের অনুমতি দেওয়ার জন্য সিস্টেম সেটিংসে পাঠায়, তাই সংক্ষিপ্ত নির্দেশাবলীও অন্তর্ভুক্ত করে যা ব্যাখ্যা করে যে ব্যবহারকারীরা সেখানে কীভাবে অনুমতি দিতে পারে। যৌক্তিক UI ব্যবহারকারীকে অনুমতি দেওয়া থেকে অপ্ট-আউট করার জন্য একটি স্পষ্ট বিকল্প প্রদান করা উচিত। ব্যবহারকারী যৌক্তিকতা স্বীকার করার পরে, পরবর্তী ধাপে চালিয়ে যান।
- ব্যক্তিগত ব্যবহারকারীর ডেটা অ্যাক্সেস করার জন্য আপনার অ্যাপের প্রয়োজন এমন বিশেষ অনুমতির অনুরোধ করুন । এটি সম্ভবত সিস্টেম সেটিংসের সংশ্লিষ্ট পৃষ্ঠায় একটি উদ্দেশ্য জড়িত যেখানে ব্যবহারকারী অনুমতি দিতে পারে। রানটাইম অনুমতির বিপরীতে, কোন পপআপ অনুমতি ডায়ালগ নেই।
- ব্যবহারকারীর প্রতিক্রিয়া পরীক্ষা করুন - তারা বিশেষ অনুমতি প্রদান বা অস্বীকার করতে বেছে নিয়েছে কিনা -
onResume()
পদ্ধতিতে। - ব্যবহারকারী আপনার অ্যাপের অনুমতি দিলে, আপনি ব্যক্তিগত ব্যবহারকারীর ডেটা অ্যাক্সেস করতে পারবেন। ব্যবহারকারী যদি এর পরিবর্তে অনুমতি অস্বীকার করে, তাহলে আপনার অ্যাপের অভিজ্ঞতাকে ভালোভাবে হ্রাস করুন যাতে এটি সেই অনুমতি দ্বারা সুরক্ষিত তথ্য ছাড়াই ব্যবহারকারীকে কার্যকারিতা প্রদান করে।
বিশেষ অনুমতির জন্য অনুরোধ করুন
রানটাইম অনুমতির বিপরীতে, ব্যবহারকারীকে সিস্টেম সেটিংসে বিশেষ অ্যাপ অ্যাক্সেস পৃষ্ঠা থেকে বিশেষ অনুমতি দিতে হবে। অ্যাপগুলি একটি অভিপ্রায় ব্যবহার করে ব্যবহারকারীদের সেখানে পাঠাতে পারে, যা অ্যাপটিকে বিরতি দেয় এবং প্রদত্ত বিশেষ অনুমতির জন্য সংশ্লিষ্ট সেটিংস পৃষ্ঠা চালু করে। ব্যবহারকারী অ্যাপে ফিরে আসার পরে, অ্যাপটি onResume()
ফাংশনে অনুমতি দেওয়া হয়েছে কিনা তা পরীক্ষা করতে পারে।
নিম্নলিখিত নমুনা কোডটি দেখায় কিভাবে ব্যবহারকারীদের কাছ থেকে SCHEDULE_EXACT_ALARMS
বিশেষ অনুমতির অনুরোধ করা যায়:
val alarmManager = getSystemService<AlarmManager>()!!
when {
// if permission is granted, proceed with scheduling exact alarms…
alarmManager.canScheduleExactAlarms() -> {
alarmManager.setExact(...)
}
else -> {
// ask users to grant the permission in the corresponding settings page
startActivity(Intent(ACTION_REQUEST_SCHEDULE_EXACT_ALARM))
}
}
অনুমতি চেক করার জন্য নমুনা কোড এবং onResume()
এ ব্যবহারকারীর সিদ্ধান্তগুলি পরিচালনা করুন:
override fun onResume() {
// ...
if (alarmManager.canScheduleExactAlarms()) {
// proceed with the action (setting exact alarms)
alarmManager.setExact(...)
}
else {
// permission not yet approved. Display user notice and gracefully degrade
your app experience.
alarmManager.setWindow(...)
}
}
সেরা অনুশীলন এবং টিপস
বিশেষ অনুমতির অনুরোধ করার সময় নিম্নলিখিত বিভাগগুলি কিছু সেরা অনুশীলন এবং বিবেচনা প্রদান করে।
প্রতিটি অনুমতির নিজস্ব চেক পদ্ধতি আছে
বিশেষ অনুমতি রানটাইম অনুমতির চেয়ে ভিন্নভাবে কাজ করে। পরিবর্তে, অনুমতি API রেফারেন্স পৃষ্ঠা পড়ুন এবং প্রতিটি বিশেষ অনুমতির জন্য কাস্টম অ্যাক্সেস চেক ফাংশন ব্যবহার করুন। উদাহরণগুলির মধ্যে রয়েছে SCHEDULE_EXACT_ALARMS
অনুমতির জন্য AlarmManager#canScheduleExactAlarms()
এবং MANAGE_EXTERNAL_STORAGE
অনুমতির জন্য Environment#isExternalStorageManager()
৷
প্রসঙ্গে অনুরোধ
রানটাইম অনুমতির মতো, ব্যবহারকারী যখন অনুমতির প্রয়োজন এমন একটি নির্দিষ্ট কাজের অনুরোধ করেন তখন অ্যাপগুলিকে প্রেক্ষাপটে বিশেষ অনুমতির অনুরোধ করা উচিত। উদাহরণস্বরূপ, SCHEDULE_EXACT_ALARMS
অনুমতির অনুরোধ করার জন্য অপেক্ষা করুন যতক্ষণ না ব্যবহারকারী একটি নির্দিষ্ট সময়ে পাঠানোর জন্য একটি ইমেল নির্ধারণ করে।
অনুরোধটি ব্যাখ্যা করুন
সিস্টেম সেটিংসে পুনঃনির্দেশ করার আগে একটি যুক্তি প্রদান করুন। যেহেতু ব্যবহারকারীরা বিশেষ অনুমতি দেওয়ার জন্য অস্থায়ীভাবে অ্যাপটি ছেড়ে যায়, তাই সিস্টেম সেটিংসে বিশেষ অ্যাপ অ্যাক্সেস পৃষ্ঠায় অভিপ্রায় চালু করার আগে একটি ইন-অ্যাপ UI দেখান। এই UI-এর স্পষ্টভাবে ব্যাখ্যা করা উচিত যে কেন অ্যাপটির অনুমতি প্রয়োজন এবং ব্যবহারকারীর সেটিংস পৃষ্ঠায় এটি কীভাবে দেওয়া উচিত।