অবস্থান, মাইক্রোফোন এবং ক্যামেরা সম্পর্কিত অনুমতিগুলো আপনার অ্যাপকে ব্যবহারকারীদের অত্যন্ত সংবেদনশীল তথ্য অ্যাক্সেস করার সুযোগ দেয়। কোন কোন অ্যাপ অবস্থান, মাইক্রোফোন এবং ক্যামেরা অ্যাক্সেস করতে পারবে, সে বিষয়ে ব্যবহারকারীদের অবহিত রাখতে এবং নিয়ন্ত্রণ বজায় রাখতে সাহায্য করার জন্য প্ল্যাটফর্মটিতে বেশ কিছু ব্যবস্থা রয়েছে, যা এই পৃষ্ঠায় বর্ণনা করা হয়েছে।
এই গোপনীয়তা-সংরক্ষক সিস্টেম ফিচারগুলো আপনার অ্যাপের লোকেশন, মাইক্রোফোন এবং ক্যামেরা সম্পর্কিত পারমিশন পরিচালনার পদ্ধতিতে কোনো প্রভাব ফেলবে না, যতক্ষণ পর্যন্ত আপনি গোপনীয়তার সর্বোত্তম অনুশীলনগুলো অনুসরণ করবেন ।
বিশেষ করে, আপনার অ্যাপে নিম্নলিখিত বিষয়গুলো নিশ্চিত করুন:
- ব্যবহারকারী আপনার অ্যাপকে
CAMERAঅনুমতি না দেওয়া পর্যন্ত ডিভাইসের ক্যামেরা ব্যবহারের জন্য অপেক্ষা করুন। - ব্যবহারকারী আপনার অ্যাপকে
RECORD_AUDIOঅনুমতি না দেওয়া পর্যন্ত ডিভাইসের মাইক্রোফোন অ্যাক্সেস করার জন্য অপেক্ষা করুন। - লোকেশন পারমিশন কীভাবে অনুরোধ করতে হয় সেই নির্দেশিকায় বর্ণিত পদ্ধতি অনুযায়ী, ব্যবহারকারী আপনার অ্যাপের লোকেশন-প্রয়োজনীয় কোনো ফিচারের সাথে ইন্টারঅ্যাক্ট করা পর্যন্ত অপেক্ষা করুন এবং তারপরেই
ACCESS_COARSE_LOCATIONবাACCESS_FINE_LOCATIONপারমিশনের জন্য অনুরোধ করুন। - ব্যবহারকারী আপনার অ্যাপকে
ACCESS_COARSE_LOCATIONঅথবাACCESS_FINE_LOCATIONপারমিশন দেওয়ার আগে পর্যন্ত অপেক্ষা করুন, এরপরইACCESS_BACKGROUND_LOCATIONপারমিশনের জন্য অনুরোধ করুন।
গোপনীয়তা ড্যাশবোর্ড
অ্যান্ড্রয়েড ১২ বা তার উচ্চতর সংস্করণে চালিত সমর্থিত ডিভাইসগুলিতে, সিস্টেম সেটিংসে একটি প্রাইভেসি ড্যাশবোর্ড স্ক্রিন দেখা যায়। এই স্ক্রিনে, ব্যবহারকারীরা আলাদা আলাদা স্ক্রিন দেখতে পারেন, যেখানে দেখানো হয় কখন অ্যাপগুলো লোকেশন, ক্যামেরা এবং মাইক্রোফোনের তথ্য অ্যাক্সেস করেছে। প্রতিটি স্ক্রিনে একটি টাইমলাইন দেখানো হয়, যেখানে উল্লেখ থাকে কখন বিভিন্ন অ্যাপ একটি নির্দিষ্ট ধরনের ডেটা অ্যাক্সেস করেছে। চিত্র ১-এ লোকেশন তথ্যের ডেটা অ্যাক্সেস টাইমলাইন দেখানো হয়েছে।
ডেটা অ্যাক্সেসের যৌক্তিকতা দেখান
আপনার অ্যাপ কেন অবস্থান, ক্যামেরা বা মাইক্রোফোনের তথ্য অ্যাক্সেস করে, তা ব্যবহারকারীদের বুঝতে সাহায্য করার জন্য একটি যুক্তি প্রদান করতে পারে। এই যুক্তিটি নতুন প্রাইভেসি ড্যাশবোর্ড স্ক্রিনে, আপনার অ্যাপের পারমিশন স্ক্রিনে, অথবা উভয় স্থানেই প্রদর্শিত হতে পারে।
আপনার অ্যাপ কেন অবস্থান, ক্যামেরা এবং মাইক্রোফোনের তথ্য অ্যাক্সেস করে, তা ব্যাখ্যা করতে নিম্নলিখিত ধাপগুলো সম্পন্ন করুন:
এমন একটি অ্যাক্টিভিটি যোগ করুন যা চালু হলে, আপনার অ্যাপ কেন একটি নির্দিষ্ট ধরণের ডেটা অ্যাক্সেস অ্যাকশন সম্পাদন করে তার যৌক্তিকতা ব্যাখ্যা করবে। এই অ্যাক্টিভিটির মধ্যে,
android:permissionঅ্যাট্রিবিউটটিকেSTART_VIEW_PERMISSION_USAGEএ সেট করুন।আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ১২ বা তার উচ্চতর সংস্করণকে টার্গেট করে, তাহলে আপনাকে অবশ্যই
android:exportedঅ্যাট্রিবিউটের জন্য একটি মান স্পষ্টভাবে নির্ধারণ করতে হবে।নতুন যোগ করা অ্যাক্টিভিটিতে নিম্নলিখিত ইন্টেন্ট ফিল্টারটি যুক্ত করুন:
<!-- android:exported required if you target Android 12. --> <activity android:name=".DataAccessRationaleActivity" android:permission="android.permission.START_VIEW_PERMISSION_USAGE" android:exported="true"> <!-- VIEW_PERMISSION_USAGE shows a selectable information icon on your app permission's page in system settings. VIEW_PERMISSION_USAGE_FOR_PERIOD shows a selectable information icon on the Privacy Dashboard screen. --> <intent-filter> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE" /> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD" /> <category android:name="android.intent.category.DEFAULT" /> ... </intent-filter> </activity>
আপনার ডেটা অ্যাক্সেসের যৌক্তিকতা সম্পর্কিত অ্যাক্টিভিটিতে কী দেখানো হবে, তা স্থির করুন। উদাহরণস্বরূপ, আপনি আপনার অ্যাপের ওয়েবসাইট বা একটি হেল্প সেন্টার আর্টিকেল দেখাতে পারেন। আপনার অ্যাপ কোন ধরনের ডেটা অ্যাক্সেস করে এবং কখন সেই অ্যাক্সেস ঘটেছে, সে সম্পর্কে আরও বিস্তারিত ব্যাখ্যা দেওয়ার জন্য, সিস্টেম যখন পারমিশন ইউসেজ ইন্টেন্টটি কল করে তখন তার অন্তর্ভুক্ত অতিরিক্ত বিষয়গুলো হ্যান্ডেল করুন:
- যদি সিস্টেম
ACTION_VIEW_PERMISSION_USAGEকল করে, তাহলে আপনার অ্যাপEXTRA_PERMISSION_GROUP_NAMEএর জন্য একটি মান পুনরুদ্ধার করতে পারবে। - যদি সিস্টেম
ACTION_VIEW_PERMISSION_USAGE_FOR_PERIODকল করে, তাহলে আপনার অ্যাপEXTRA_PERMISSION_GROUP_NAME,EXTRA_ATTRIBUTION_TAGS,EXTRA_START_TIME, এবংEXTRA_END_TIMEএর মানগুলো পুনরুদ্ধার করতে পারবে।
- যদি সিস্টেম
আপনি কোন ইন্টেন্ট ফিল্টার যোগ করেছেন তার উপর নির্ভর করে, ব্যবহারকারীরা নির্দিষ্ট কিছু স্ক্রিনে আপনার অ্যাপের নামের পাশে একটি তথ্য আইকন দেখতে পান:
- যদি আপনি
VIEW_PERMISSION_USAGEঅ্যাকশন সম্বলিত ইন্টেন্ট ফিল্টারটি যোগ করেন, তাহলে ব্যবহারকারীরা সিস্টেম সেটিংসে আপনার অ্যাপের পারমিশন পেজে আইকনটি দেখতে পাবেন। আপনি এই অ্যাকশনটি সমস্ত রানটাইম পারমিশনের ক্ষেত্রে প্রয়োগ করতে পারেন। - যদি আপনি
VIEW_PERMISSION_USAGE_FOR_PERIODঅ্যাকশন সম্বলিত ইন্টেন্ট ফিল্টারটি যোগ করেন, তাহলে প্রাইভেসি ড্যাশবোর্ড স্ক্রিনে যখনই আপনার অ্যাপটি প্রদর্শিত হবে, ব্যবহারকারীরা আপনার অ্যাপের নামের পাশে আইকনটি দেখতে পাবেন।
যখন ব্যবহারকারীরা ওই আইকনটি নির্বাচন করেন, তখন আপনার অ্যাপের যৌক্তিকতা বিশ্লেষণ কার্যক্রমটি শুরু হয়।
সূচক
অ্যান্ড্রয়েড ১২ বা তার উচ্চতর সংস্করণে চালিত ডিভাইসগুলিতে, যখন কোনো অ্যাপ মাইক্রোফোন বা ক্যামেরা ব্যবহার করে, তখন স্ট্যাটাস বারে একটি আইকন দেখা যায়। অ্যাপটি ইমারসিভ মোডে থাকলে, আইকনটি স্ক্রিনের উপরের-ডান কোণায় দেখা যায়। ব্যবহারকারীরা কুইক সেটিংস খুলে আইকনটি নির্বাচন করে দেখতে পারেন কোন কোন অ্যাপ বর্তমানে মাইক্রোফোন বা ক্যামেরা ব্যবহার করছে। চিত্র ২-এ আইকনসহ একটি উদাহরণ স্ক্রিনশট দেখানো হয়েছে।
সূচকগুলির স্ক্রিন অবস্থান শনাক্ত করুন
আপনার অ্যাপ যদি ইমারসিভ মোড বা ফুল-স্ক্রিন UI সমর্থন করে, তাহলে ইন্ডিকেটরগুলো ক্ষণিকের জন্য আপনার অ্যাপের UI-এর উপর চলে আসতে পারে। এই ইন্ডিকেটরগুলোর সাথে আপনার UI-কে মানিয়ে নিতে সাহায্য করার জন্য, সিস্টেমটি getPrivacyIndicatorBounds() মেথডটি চালু করেছে, যা নিচের কোড স্নিপেটে দেখানো হয়েছে। এই API ব্যবহার করে, ইন্ডিকেটরগুলো কোথায় প্রদর্শিত হতে পারে, সেই সীমানাগুলো আপনি শনাক্ত করতে পারবেন। এরপর আপনি আপনার স্ক্রিনের UI ভিন্নভাবে সাজানোর সিদ্ধান্ত নিতে পারেন।
কোটলিন
view.setOnApplyWindowInsetsListener { view, windowInsets -> val indicatorBounds = windowInsets.getPrivacyIndicatorBounds() // change your UI to avoid overlapping windowInsets }
টগল
অ্যান্ড্রয়েড ১২ বা তার উচ্চতর সংস্করণে চালিত সমর্থিত ডিভাইসগুলিতে , ব্যবহারকারীরা একটিমাত্র টগল অপশন চাপার মাধ্যমে ডিভাইসের সমস্ত অ্যাপের জন্য ক্যামেরা এবং মাইক্রোফোন অ্যাক্সেস চালু বা বন্ধ করতে পারেন। ব্যবহারকারীরা চিত্র ৩-এ দেখানো অনুযায়ী কুইক সেটিংস থেকে, অথবা সিস্টেম সেটিংসের প্রাইভেসি স্ক্রিন থেকে এই টগলযোগ্য অপশনগুলো অ্যাক্সেস করতে পারেন।
ক্যামেরা ও মাইক্রোফোন টগলগুলো ডিভাইসের সমস্ত অ্যাপকে প্রভাবিত করে:
- যখন ব্যবহারকারী ক্যামেরা অ্যাক্সেস বন্ধ করে দেন, তখন আপনার অ্যাপ একটি খালি ক্যামেরা ফিড পায়।
যখন ব্যবহারকারী মাইক্রোফোন অ্যাক্সেস বন্ধ করে দেন, তখন আপনার অ্যাপ নীরব অডিও গ্রহণ করে। এছাড়াও, আপনি
HIGH_SAMPLING_RATE_SENSORSপারমিশন ঘোষণা করুন বা না করুন, মোশন সেন্সরগুলো রেট-লিমিটেড থাকে ।
যখন ব্যবহারকারী ক্যামেরা বা মাইক্রোফোনের অ্যাক্সেস বন্ধ করার পর এমন কোনো অ্যাপ চালু করেন যার ক্যামেরা বা মাইক্রোফোনের তথ্যে অ্যাক্সেস প্রয়োজন, তখন সিস্টেম ব্যবহারকারীকে মনে করিয়ে দেয় যে ডিভাইস-ব্যাপী টগলটি বন্ধ রয়েছে।
ডিভাইস সাপোর্ট চেক করুন
কোনো ডিভাইস মাইক্রোফোন এবং ক্যামেরা টগল সমর্থন করে কিনা তা পরীক্ষা করতে, নিম্নলিখিত কোড স্নিপেটে প্রদর্শিত লজিকটি যোগ করুন:
কোটলিন
val sensorPrivacyManager = applicationContext .getSystemService(SensorPrivacyManager::class.java) as SensorPrivacyManager val supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE) val supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA)
জাভা
SensorPrivacyManager sensorPrivacyManager = getApplicationContext() .getSystemService(SensorPrivacyManager.class); boolean supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE); boolean supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA);