تمنح أذونات التشغيل في Android 6 والإصدارات الأحدث للمستخدمين إمكانية التحكّم في الحالات التي يسمحون فيها بتسجيل الصوت من ميكروفون الجهاز أو الفيديو من كاميرا الجهاز. قبل أن يتمكّن التطبيق من التسجيل، يجب أن يمنح المستخدم الإذن له أو يرفضه من خلال مربّع حوار يعرضه النظام.
يوفّر Android 12 للمستخدمين الشفافية من خلال عرض مؤشرات عندما يستخدم أحد التطبيقات مصدر بيانات خاص من خلال أذونات تشغيل التطبيقات والكاميرات والميكروفون. تسجِّل "عمليات التطبيق" عمليات الوصول إلى واجهات برمجة التطبيقات المحمية بأذونات وقت التشغيل.
تتتبّع ميزة "إبقاء التطبيقات تحت السيطرة" حالة النشاط وعدد طلبات البيانات الفردية من واجهة برمجة التطبيقات، وتتفاعل مع مؤشّري الميكروفون والكاميرا في نظام التشغيل Android 12 لإعلام المستخدمين عندما تصل التطبيقات إلى بيانات الصوت والكاميرا على أجهزتهم. عندما ينقر المستخدمون على مؤشرَي الميكروفون أو الكاميرا، يظهر لهم التطبيقات التي وصلت إلى بياناتهم. هذه الميزة إلزامية لجميع المصنّعين الأصليّين للأجهزة.
متطلبات ظهور المؤشر
في ما يلي متطلبات مؤشرات الميكروفون والكاميرا على الأجهزة التي تعمل بالإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث:
- يجب أن تظهر المؤشرات في شريط الحالة، وأن تحتفظ بأعلى أولوية مرئية (على سبيل المثال، أن تكون في أقصى يسار الشاشة في أعلى يمينها).
- يجب وضع المؤشرات باستمرار في نفس الموضع، ويجب ألا يتم حظرها من قِبل أي تطبيق عند تشغيله.
- يجب أن يكون لون كلا المؤشّرين أخضر (أو لونًا قريبًا من الأخضر).
- يجب أن يؤدي النقر على أحد المؤشرَين أو كليهما إلى عرض إشعار ميزة إحالة التطبيق
الذي ينطبق على ما يلي:
- عرض اسم التطبيق الذي يستخدم الميكروفون و (أو) الكاميرا
- تعرِض هذه السمة اسم التطبيق الذي استخدم الميكروفون و/أو الكاميرا في آخر 15 ثانية.
- ينقل المستخدمين إلى صفحة أذونات التطبيق في الإعدادات
الاستخدام والميزات
في Android 12، تميِّز واجهة المستخدم بين عمليات الاستخدام الجارية وعمليات الاستخدام الأخيرة. تُعتبر عمليات الاستخدام نشطة إذا كان النظام قد حدد أنّها قيد التشغيل أو إذا مرّ أقل من 5 ثوانٍ على تنفيذها.
- تظهر رموز شريط الحالة في كل مرة يستخدم فيها أحد التطبيقات الميكروفون أو الكاميرا بشكل مستمر لأداء مهام حسّاسة للمستخدم.
- ويمكن للمستخدمين النقر على هذه الرموز والاطّلاع على التطبيقات التي تحصل على إذن الوصول إلى الميكروفون أو الكاميرا أو كليهما.
الشكل 1: مؤشرات استخدام الميكروفون والكاميرا التي تعرض إمكانية الوصول النشطة (في أعلى يسار الشاشة)
ويكون إذن الوصول نشطًا طوال الوقت الذي تظهر فيه المؤشرات. يظهر رمز أولاً، ثم يتحول إلى نقطة تظل ظاهرة إلى أن يتم إغلاق التطبيق أو إغلاقه.
عندما ينقر المستخدم على المؤشّرات، سيظهر مربّع حوار يُظهر أنّ أحد التطبيقات يستخدم الكاميرا أو الميكروفون أو كليهما.
الشكل 2: مؤشرات الوصول النشطة والمُحدَّثة مؤخرًا
تعرض الصورة في الشكل 2 مؤشرات الوصول النشط عندما تم الوصول إلى البيانات في آخر 5 ثوانٍ من خلال تطبيق قيد التشغيل.
تُظهِر مؤشرات الوصول الحديثة أنّ التطبيق قد تمكّن من الوصول إليه خلال آخر 15 ثانية، ولكنه لم يكن نشطًا. تظهر جميع التطبيقات النشطة في المربّع الحواري، ولكن يظهر تطبيق واحد فقط كمصدر الوصول الأخير، حتى إذا كان هناك أكثر من تطبيق واحد قد وصل إلى البيانات خلال إطار زمني سابق مدته 15 ثانية. تظلّ طريقة عرض الوصول مجمّدة إلى أن يغلِق المستخدم مربّع حوار الإشعار.
الإرسال والتفعيل
توفّر فئة PermissionManager
طريقة لتعبئة مربّع الحوار الذي
يقع في واجهة مستخدم النظام.
- تتفاعل واجهة مستخدم النظام مع مفتاح تبديل إعداد الجهاز:
privacy/mic_camera_indicators_enabled
. - يعد التبديل ضروريًا نظرًا لوجود مركبتين منفصلتين للتسليم،
بهذا الترتيب:
- التسليم.
- فعِّل الميزة.
- يجب ألا يتعطّل واجهة مستخدم النظام إذا تعذّر على الطريقة في
PermissionManager
تقديم البيانات المطلوبة.
سير العملية
تتضمّن وظيفة "مؤشر الأذونات" ثلاثة أجزاء رئيسية:
- التطبيقات
- المؤشرات (تتم معالجتها بواسطة SystemUI)
- طريقة لتحديد التطبيقات التي تستخدم البيانات
وتوفّر PermissionController
آلية تحديد التطبيقات التي تستخدم البيانات. يرصد SystemUI التطبيقات التي تستخدم البيانات الخاصة. تعرض SystemUI رمزًا في شريط التنقل
العلوي يتوافق مع الأذونات المستخدمة. تعرِض العلامة
PermissionController
بيانات عن الاستخدامات عندما ينقر المستخدِم على رمز.
الشكل 3. مكونات النظام وتدفّق عمليات النقل (في واجهة المستخدم)
في ما يلي وصف للعمليات الانتقالية المرقّمة في الشكل 3:
1- يطلب التطبيق بيانات خاصة من النظام.
2- يتحقّق النظام من الأذونات. في حال السماح بالأذونات، يُرسِل النظام إشعارًا لموفِّر البيانات ويُسجِّل الاستخدام في عمليات التطبيق.
3- يقدّم مزوّد البيانات البيانات إلى التطبيق.
4-5 ينقر المستخدم على الرموز. يطلب واجهة مستخدم النظام بيانات من
PermissionManager
ويعرض مربّع الحوار على المستخدم.
تفاصيل العملية
- تستخدم التطبيقات الميكروفون والكاميرا و
AppOpsManager.startOp
وstopOp
و (أو)noteOp
. يؤدي هذا إلى إنشاء سجلات عمليات التطبيق في خادم النظام. - تستمع واجهة مستخدم النظام إلى عمليات التطبيق الجديدة باستخدام مستمعَي
AppOpsManager.OnOpActiveChangedInternalListener
وOnOpNotedListener
. عند تلقّي طلب استخدام جديد (من خلال طلب إلىstartOp
أوnoteOp
)، تتحقّق واجهة مستخدم النظام من أنّ الاستخدام من خلال تطبيق نظام. - إذا تحقّق واجهة مستخدم النظام من استخدام تطبيقات النظام، وإذا كان الاستخدام هو للميكروفون، تتحقّق واجهة مستخدم النظام مما إذا كان الميكروفون صامتًا.
- إذا تحقّق واجهة مستخدم النظام من استخدام تطبيق غير تابع للنظام (وبالنسبة إلى استخدام الميكروفون، أنّه تم إلغاء كتم صوت الميكروفون، وبالنسبة إلى استخدام الكاميرا، أنّه تم تفعيل الكاميرا)، يعرض رمزًا يشير إلى هذا الاستخدام.
إذا تلقّت واجهة مستخدم النظام رسالة noteOp
بلا مدة، سيعرض الرمز 5 ثوانٍ على الأقل. بخلاف ذلك، يظهر الرمز إما إلى أن يتلقّى إشارة
stopOp
أو لمدة 5 ثوانٍ، أيّهما أطول. يبدأ المستخدم الذي ينقر على أحد الرموز
إجراء intent للانتقال إلى PermissionController
لبدء مربّع الحوار.
تحمِّل PermissionController
جميع عمليات استخدام الميكروفون والكاميرا الأخيرة. ويتحقق من بدء أي من هذه العمليات أو تشغيلها خلال الإطار الزمني الذي حدّده واجهة مستخدم النظام. وفي حال العثور على تطابق، يتم عرض اسم التطبيق
الذي استخدم الإذن والأذونات التي استخدمها التطبيق.
بسبب هذا التغيير في الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث، يجب أن تغيّر بعض التطبيقات سلوكها أو تطبّق سلوكًا خاصًا.
يجب أن ينفِّذ تطبيق "الاتصال الهاتفي" استخدام الأذونات (للتحقّق من توفّر حزمة الميكروفون المنفصلة المستخدَمة في المكالمات الهاتفية)، أثناء العمل مع تطبيق "بحث Google" (AGSA) و"خدمات Google للأجهزة الجوّالة" (GMS).