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

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

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

على وجه الخصوص، تأكَّد من تنفيذ ما يلي في تطبيقك:

  • انتظِر حتى يمنح المستخدم تطبيقك إذن 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. أضِف intent filter التالي إلى النشاط الذي تمّت إضافته مؤخرًا:

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

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

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

المؤشرات

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

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

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

Kotlin

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

خيارات التفعيل والإيقاف

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

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