আরও সংবেদনশীল তথ্যের অ্যাক্সেস ব্যাখ্যা করুন

অবস্থান, মাইক্রোফোন এবং ক্যামেরা সম্পর্কিত অনুমতিগুলি আপনার অ্যাপটিকে ব্যবহারকারীদের সম্পর্কে বিশেষভাবে সংবেদনশীল তথ্যে অ্যাক্সেস দেয়৷ প্ল্যাটফর্মটিতে ব্যবহারকারীদের অবগত থাকতে এবং কোন অ্যাপগুলি অবস্থান, মাইক্রোফোন এবং ক্যামেরা অ্যাক্সেস করতে পারে তা নিয়ন্ত্রণে রাখতে সহায়তা করার জন্য এই পৃষ্ঠায় বর্ণিত বেশ কয়েকটি প্রক্রিয়া অন্তর্ভুক্ত করে।

এই গোপনীয়তা-সংরক্ষণকারী সিস্টেম বৈশিষ্ট্যগুলি আপনার অ্যাপ কীভাবে লোকেশন, মাইক্রোফোন এবং ক্যামেরা সম্পর্কিত অনুমতিগুলি পরিচালনা করে তা প্রভাবিত করবে না, যতক্ষণ না আপনি গোপনীয়তার সেরা অনুশীলনগুলি অনুসরণ করেন

বিশেষ করে, আপনি আপনার অ্যাপে নিম্নলিখিতগুলি করেন তা নিশ্চিত করুন:

  • ব্যবহারকারী আপনার অ্যাপে CAMERA অনুমতি না দেওয়া পর্যন্ত ডিভাইসের ক্যামেরা অ্যাক্সেস করার জন্য অপেক্ষা করুন।
  • ব্যবহারকারী আপনার অ্যাপে RECORD_AUDIO অনুমতি না দেওয়া পর্যন্ত ডিভাইসের মাইক্রোফোন অ্যাক্সেস করার জন্য অপেক্ষা করুন৷
  • ACCESS_COARSE_LOCATION অনুমতি বা ACCESS_FINE_LOCATION অনুমতির অনুরোধ করার আগে ব্যবহারকারী আপনার অ্যাপে এমন একটি বৈশিষ্ট্যের সাথে ইন্টারঅ্যাক্ট না করা পর্যন্ত অপেক্ষা করুন, যেটি অবস্থানের অনুমতির অনুরোধ করার নির্দেশিকাতে বর্ণনা করা হয়েছে।
  • আপনি ACCESS_BACKGROUND_LOCATION অনুমতির অনুরোধ করার আগে ব্যবহারকারী আপনার অ্যাপটিকে ACCESS_COARSE_LOCATION অনুমতি বা ACCESS_FINE_LOCATION অনুমতি না দেওয়া পর্যন্ত অপেক্ষা করুন৷

গোপনীয়তা ড্যাশবোর্ড

একটি উল্লম্ব টাইমলাইন বিভিন্ন অ্যাপ দেখায়          অবস্থানের তথ্য অ্যাক্সেস করা হয়েছে এবং কোন সময়ে অ্যাক্সেসগুলি ঘটেছে৷
চিত্র 1. অবস্থান ব্যবহার স্ক্রীন, গোপনীয়তা ড্যাশবোর্ডের অংশ।

সমর্থিত ডিভাইসগুলিতে যেগুলি Android 12 বা উচ্চতর চালায়, সিস্টেম সেটিংসে একটি গোপনীয়তা ড্যাশবোর্ড স্ক্রীন প্রদর্শিত হয়। এই স্ক্রিনে, ব্যবহারকারীরা পৃথক স্ক্রিন অ্যাক্সেস করতে পারে যা অ্যাপগুলি অবস্থান, ক্যামেরা এবং মাইক্রোফোন তথ্য অ্যাক্সেস করার সময় দেখায়। প্রতিটি স্ক্রীন একটি সময়রেখা দেখায় যখন বিভিন্ন অ্যাপ একটি নির্দিষ্ট ধরনের ডেটা অ্যাক্সেস করেছে। চিত্র 1 অবস্থানের তথ্যের জন্য ডেটা অ্যাক্সেস টাইমলাইন দেখায়।

ডেটা অ্যাক্সেসের জন্য যুক্তি দেখান

আপনার অ্যাপ কেন আপনার অ্যাপ লোকেশন, ক্যামেরা বা মাইক্রোফোনের তথ্য অ্যাক্সেস করে তা বুঝতে ব্যবহারকারীদের সাহায্য করার জন্য একটি যুক্তি প্রদান করতে পারে। এই যুক্তিটি নতুন গোপনীয়তা ড্যাশবোর্ড স্ক্রীনে, আপনার অ্যাপের অনুমতি স্ক্রীনে বা উভয়েই প্রদর্শিত হতে পারে।

কেন আপনার অ্যাপ লোকেশন, ক্যামেরা এবং মাইক্রোফোনের তথ্য অ্যাক্সেস করে তা ব্যাখ্যা করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:

  1. একটি ক্রিয়াকলাপ যোগ করুন যেটি, শুরু হলে, আপনার অ্যাপ কেন একটি নির্দিষ্ট ধরণের ডেটা অ্যাক্সেস অ্যাকশন সম্পাদন করে তার জন্য কিছু যুক্তি প্রদান করে। এই কার্যকলাপের মধ্যে, android:permission বৈশিষ্ট্যটি START_VIEW_PERMISSION_USAGE এ সেট করুন।

    যদি আপনার অ্যাপটি Android 12 বা উচ্চতরকে লক্ষ্য করে, তাহলে আপনাকে অবশ্যই android:exported অ্যাট্রিবিউটের জন্য একটি মান স্পষ্টভাবে সংজ্ঞায়িত করতে হবে।

  2. নতুন যোগ করা কার্যকলাপে নিম্নলিখিত অভিপ্রায় ফিল্টার যোগ করুন:

    <!-- 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>
  3. আপনার ডেটা অ্যাক্সেস যৌক্তিক কার্যকলাপ প্রদর্শন করা উচিত কি সিদ্ধান্ত. উদাহরণস্বরূপ, আপনি আপনার অ্যাপের ওয়েবসাইট বা একটি সহায়তা কেন্দ্র নিবন্ধ দেখাতে পারেন। আপনার অ্যাপ যে ধরনের ডেটা অ্যাক্সেস করে সে সম্পর্কে আরও বিশদ ব্যাখ্যা প্রদান করতে, সেইসাথে কখন অ্যাক্সেস ঘটেছিল, অনুমতি ব্যবহারের উদ্দেশ্য আহ্বান করার সময় সিস্টেমটি যে অতিরিক্তগুলি অন্তর্ভুক্ত করে তা পরিচালনা করুন:

    • যদি সিস্টেমটি 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 অ্যাকশন রয়েছে, ব্যবহারকারীরা আপনার অ্যাপের নামের পাশে আইকনটি দেখতে পাবেন যখনই আপনার অ্যাপটি গোপনীয়তা ড্যাশবোর্ড স্ক্রিনে প্রদর্শিত হবে।

ব্যবহারকারীরা সেই আইকনটি নির্বাচন করলে, আপনার অ্যাপের যৌক্তিক কার্যকলাপ শুরু হয়।

উপরের-ডান কোণে একটি বৃত্তাকার আয়তক্ষেত্র, যা          একটি ক্যামেরা আইকন এবং একটি মাইক্রোফোন আইকন অন্তর্ভুক্ত
চিত্র 2. মাইক্রোফোন এবং ক্যামেরা সূচক, যা সাম্প্রতিক ডেটা অ্যাক্সেস দেখায়।

সূচক

যে ডিভাইসগুলিতে Android 12 বা উচ্চতর সংস্করণ চলে, যখন কোনও অ্যাপ মাইক্রোফোন বা ক্যামেরা অ্যাক্সেস করে, স্ট্যাটাস বারে একটি আইকন প্রদর্শিত হয়। অ্যাপটি ইমারসিভ মোডে থাকলে, আইকনটি স্ক্রিনের উপরের-ডানদিকে প্রদর্শিত হবে। ব্যবহারকারীরা দ্রুত সেটিংস খুলতে পারেন এবং বর্তমানে কোন অ্যাপগুলি মাইক্রোফোন বা ক্যামেরা ব্যবহার করছে তা দেখতে আইকনটি নির্বাচন করতে পারেন। চিত্র 2 আইকন ধারণ করে একটি উদাহরণ স্ক্রিনশট দেখায়।

সূচকগুলির পর্দার অবস্থান সনাক্ত করুন

যদি আপনার অ্যাপ ইমারসিভ মোড বা একটি পূর্ণ-স্ক্রীন UI সমর্থন করে, তাহলে সূচকগুলি মুহূর্তের জন্য আপনার অ্যাপের UI ওভারল্যাপ করতে পারে। আপনার UI কে এই সূচকগুলির সাথে খাপ খাইয়ে নিতে সাহায্য করার জন্য, সিস্টেমটি getPrivacyIndicatorBounds() পদ্ধতি প্রবর্তন করে, যা নিম্নলিখিত কোড স্নিপেটটি প্রদর্শন করে৷ এই API ব্যবহার করে, আপনি সীমা চিহ্নিত করতে পারেন যেখানে সূচকগুলি প্রদর্শিত হতে পারে। তারপরে আপনি আপনার স্ক্রিনের UI ভিন্নভাবে সংগঠিত করার সিদ্ধান্ত নিতে পারেন।

কোটলিন

view.setOnApplyWindowInsetsListener { view, windowInsets ->
    val indicatorBounds = windowInsets.getPrivacyIndicatorBounds()
    // change your UI to avoid overlapping
    windowInsets
}

টগল করে

দ্রুত সেটিংস টাইলস লেবেল 'ক্যামেরা অ্যাক্সেস' এবং          'মাইক অ্যাক্সেস'
চিত্র 3. দ্রুত সেটিংসে মাইক্রোফোন এবং ক্যামেরা টগল।

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

ক্যামেরা এবং মাইক্রোফোন টগলগুলি ডিভাইসের সমস্ত অ্যাপকে প্রভাবিত করে:

  • ব্যবহারকারী ক্যামেরা অ্যাক্সেস বন্ধ করলে, আপনার অ্যাপ একটি ফাঁকা ক্যামেরা ফিড পায়।
  • ব্যবহারকারী মাইক্রোফোন অ্যাক্সেস বন্ধ করলে, আপনার অ্যাপ নীরব অডিও গ্রহণ করে। অতিরিক্তভাবে, আপনি 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);