شرح إمكانية الوصول إلى معلومات حساسة

تمنح الأذونات المتعلقة بالموقع الجغرافي والميكروفون والكاميرا تطبيقك إذن الوصول إلى معلومات حساسة بشكل خاص عن المستخدمين. تتضمّن المنصة آليات متعدّدة، موضّحة في هذه الصفحة، لمساعدة المستخدمين على البقاء على اطّلاع والتحكّم في التطبيقات التي يمكنها الوصول إلى الموقع الجغرافي والميكروفون والكاميرا.

يجب ألا تؤثّر ميزات النظام التي تحافظ على الخصوصية في طريقة تعامل تطبيقك مع الأذونات المتعلقة بالموقع الجغرافي والميكروفون والكاميرا، وذلك طالما أنّك تتّبع أفضل ممارسات الخصوصية.

على وجه الخصوص، احرِص على تنفيذ ما يلي في تطبيقك:

  • انتظِر إلى أن يمنح المستخدم إذن CAMERA لتطبيقك قبل الوصول إلى كاميرا الجهاز.
  • يجب الانتظار إلى أن يمنح المستخدم تطبيقك إذن RECORD_AUDIO قبل الوصول إلى ميكروفون الجهاز.
  • انتظِر إلى أن يتفاعل المستخدم مع إحدى الميزات في تطبيقك التي تتطلّب الحصول على إذن ACCESS_COARSE_LOCATION أو إذن ACCESS_FINE_LOCATION، كما هو موضّح في دليل طلب أذونات الوصول إلى الموقع الجغرافي.
  • انتظِر إلى أن يمنح المستخدم تطبيقك إذن ACCESS_COARSE_LOCATION أو إذن ACCESS_FINE_LOCATION قبل طلب إذن ACCESS_BACKGROUND_LOCATION.

لوحة بيانات الخصوصية

يعرض المخطط الزمني العمودي التطبيقات المختلفة التي وصلت إلى معلومات الموقع الجغرافي، ووقت حدوث عمليات الوصول.
الشكل 1. شاشة استخدام الموقع الجغرافي، وهي جزء من "لوحة بيانات الخصوصية"

على الأجهزة المتوافقة التي تعمل بالإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، تظهر شاشة "لوحة بيانات الخصوصية" في إعدادات النظام. في هذه الشاشة، يمكن للمستخدمين الوصول إلى شاشات منفصلة تعرض أوقات وصول التطبيقات إلى معلومات الموقع الجغرافي والكاميرا والميكروفون. تعرض كل شاشة مخططًا زمنيًا يوضّح وقت وصول التطبيقات المختلفة إلى نوع معيّن من البيانات. يوضّح الشكل 1 المخطط الزمني للوصول إلى بيانات الموقع الجغرافي.

عرض الأساس المنطقي للوصول إلى البيانات

يمكن لتطبيقك تقديم شرح للمستخدمين لمساعدتهم في فهم سبب وصول تطبيقك إلى معلومات الموقع الجغرافي أو الكاميرا أو الميكروفون. يمكن أن يظهر سبب الاستخدام هذا في شاشة "لوحة بيانات الخصوصية" الجديدة أو شاشة أذونات تطبيقك أو كليهما.

لتوضيح سبب وصول تطبيقك إلى معلومات الموقع الجغرافي والكاميرا والميكروفون، يُرجى إكمال الخطوات التالية:

  1. أضِف نشاطًا يقدّم، عند بدء تشغيله، بعض الأسباب التي توضّح سبب تنفيذ تطبيقك لنوع معيّن من إجراءات الوصول إلى البيانات. في هذا النشاط، اضبط السمة android:permission على START_VIEW_PERMISSION_USAGE.

    إذا كان تطبيقك يستهدف الإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، عليك تحديد قيمة 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. حدِّد ما يجب أن يعرضه نشاط "سبب الوصول إلى البيانات". على سبيل المثال، يمكنك عرض الموقع الإلكتروني لتطبيقك أو مقالة من مركز المساعدة. لتقديم شرح أكثر تفصيلاً حول أنواع البيانات التي يصل إليها تطبيقك، بالإضافة إلى وقت الوصول إليها، عليك التعامل مع البيانات الإضافية التي يتضمّنها النظام عند استدعاء الغرض من استخدام الإذن:

استنادًا إلى فلاتر الأهداف التي تضيفها، يظهر للمستخدمين رمز معلومات بجانب اسم تطبيقك على شاشات معيّنة:

  • في حال إضافة فلتر الأهداف الذي يحتوي على VIEW_PERMISSION_USAGE action، سيظهر للمستخدمين الرمز على صفحة أذونات تطبيقك في إعدادات النظام. يمكنك تطبيق هذا الإجراء على جميع أذونات وقت التشغيل.
  • في حال إضافة فلتر الأهداف الذي يتضمّن الإجراء VIEW_PERMISSION_USAGE_FOR_PERIOD، سيظهر للمستخدمين الرمز بجانب اسم تطبيقك كلما ظهر تطبيقك في شاشة "لوحة بيانات الخصوصية".

عندما ينقر المستخدمون على هذا الرمز، يبدأ نشاط شرح السبب في تطبيقك.

مستطيل ذو زوايا مستديرة في أعلى يسار الشاشة يتضمّن رمز كاميرا ورمز ميكروفون
الشكل 2. مؤشرات استخدام الميكروفون والكاميرا، والتي تعرض عمليات الوصول الأخيرة إلى البيانات

المؤشرات

على الأجهزة التي تعمل بنظام التشغيل Android 12 أو إصدار أحدث، يظهر رمز في شريط الحالة عندما يصل أحد التطبيقات إلى الميكروفون أو الكاميرا. إذا كان التطبيق في وضع ملء الشاشة، سيظهر الرمز في أعلى يسار الشاشة. يمكن للمستخدمين فتح "الإعدادات السريعة" والنقر على الرمز للاطّلاع على التطبيقات التي تستخدم الميكروفون أو الكاميرا حاليًا. تعرض "الشكل 2" لقطة شاشة مثال تحتوي على الرموز.

تحديد موضع المؤشرات على الشاشة

إذا كان تطبيقك يتيح استخدام وضع العرض الغامر أو واجهة مستخدم بملء الشاشة، قد تتداخل المؤشرات مع واجهة مستخدم تطبيقك لفترة وجيزة. للمساعدة في تعديل واجهة المستخدم لتتلاءم مع هذه المؤشرات، يقدّم النظام الطريقة getPrivacyIndicatorBounds()، كما يوضّح مقتطف الرمز التالي. باستخدام واجهة برمجة التطبيقات هذه، يمكنك تحديد الحدود التي قد تظهر فيها المؤشرات. يمكنك بعد ذلك اختيار تنظيم واجهة المستخدم على شاشتك بشكل مختلف.

Kotlin

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

مفاتيح التبديل

يتم تصنيف مربّعات الإعدادات السريعة على أنّها &quot;إذن الوصول إلى الكاميرا&quot; و&quot;إذن الوصول إلى الميكروفون&quot;.
الشكل 3. أزرار تبديل تفعيل الميكروفون والكاميرا وإيقافهما في "الإعدادات السريعة"

على الأجهزة المتوافقة التي تعمل بنظام التشغيل Android 12 أو إصدار أحدث، يمكن للمستخدمين تفعيل إذن الوصول إلى الكاميرا والميكروفون أو إيقافهما لجميع التطبيقات على الجهاز من خلال الضغط على خيار تبديل واحد. يمكن للمستخدمين الوصول إلى الخيارات التي يمكن تفعيلها أو إيقافها من الإعدادات السريعة، كما هو موضّح في الشكل 3، أو من شاشة "الخصوصية" في إعدادات النظام.

تؤثّر أزرار إيقاف وتفعيل الكاميرا والميكروفون في جميع التطبيقات على الجهاز:

  • عندما يوقف المستخدم إذن الوصول إلى الكاميرا، يتلقّى تطبيقك خلاصة كاميرا فارغة.
  • عندما يوقف المستخدم إذن الوصول إلى الميكروفون، يتلقّى تطبيقك صوتًا صامتًا. بالإضافة إلى ذلك، يتم فرض حدّ أقصى لعدد مرات استخدام مستشعرات الحركة، بغض النظر عمّا إذا كنت قد أعلنت عن إذن HIGH_SAMPLING_RATE_SENSORS أم لا.

عندما يوقف المستخدم إذن الوصول إلى الكاميرا أو الميكروفون، ثم يشغّل تطبيقًا يحتاج إلى الوصول إلى معلومات الكاميرا أو الميكروفون، يذكّر النظام المستخدم بأنّ خيار الإيقاف على مستوى الجهاز مفعّل.

التحقّق من توافق الجهاز

للتحقّق ممّا إذا كان الجهاز يتيح استخدام مفتاحَي تحكّم في الميكروفون والكاميرا، أضِف المنطق الذي يظهر في مقتطف الرمز التالي:

Kotlin

val sensorPrivacyManager = applicationContext
        .getSystemService(SensorPrivacyManager::class.java)
        as SensorPrivacyManager
val supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE)
val supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA)

Java

SensorPrivacyManager sensorPrivacyManager = getApplicationContext()
        .getSystemService(SensorPrivacyManager.class);
boolean supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE);
boolean supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA);