اقفل الشاشة

يظهر تطبيق AOSP الافتراضي لشاشة القفل مع إمكانيات إلغاء قفلها (حارس المفاتيح) فقط على الشاشة الأساسية. في Android 9 (والإصدارات الأقدم) ، تدعم الشاشات الثانوية نافذة قفل واحدة على شاشة خارجية واحدة. في Android 10 ، يتم توسيع شاشة القفل لتشمل جميع شاشات العرض الثانوية العامة. تظل شاشة القفل بسيطة ولا تدعم إلغاء القفل من الشاشات الثانوية.

الشكل 1. قفل الشاشة على الشاشة الثانوية

يمكن لمصنعي الأجهزة تنفيذ شاشة القفل الخاصة بهم للشاشات الثانوية ، بشرط استيفاء متطلبات الأمان الأساسية. عند قفل الجهاز ، يجب إخفاء المعلومات بشكل آمن على جميع شاشات العرض. لا توجد سياسة مضمنة أو تحكم في المحتوى الذي يجب إظهاره أو إخفاؤه عند قفل الجهاز. لذلك ، فإن الطريقة الآمنة الوحيدة لتنفيذ الوصول المقيد هي إخفاء كل المحتوى خلف شاشة القفل وقفل النوافذ. الاستثناءات الوحيدة هي التطبيقات التي تم اختيارها صراحةً ليتم عرضها أعلى شاشة القفل باستخدام R.attr.showWhenLocked أو Activity.setShowWhenLocked() . خلاف ذلك ، هناك احتمال قوي لتسريب المعلومات من شاشات العرض العامة والخاصة.

بينما يمكن وضع الشاشات في حالات مختلفة ( ON / OFF ) ، فإن حالة القفل تكون عامة لجميع شاشات العرض. كما هو الحال مع أي تطبيق للجهاز ، يجب أن يكون واضحًا للمستخدم عند قفل الجهاز (أو إلغاء قفله). على سبيل المثال ، يؤدي الضغط على زر الطاقة عادةً إلى قفل جهاز محمول. يجب أن يقفل زر الطاقة أيضًا جميع الشاشات الداخلية والخارجية.

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

تطبيق

يتم تنفيذ نافذة القفل على شاشات العرض الثانوية كنافذة عرض تقديمي في KeyguardDisplayManager . قام Android 10 بتغيير KeyguardDisplayManager#mPresentations إلى مصفوفة تحتوي على جميع نوافذ القفل لجميع الشاشات الثانوية. يحتوي KeyguardDisplayManager أيضًا على مستمع لتغيير العرض للرد على التغييرات التي تطرأ على شاشات العرض المتاحة وتأمين جميع الشاشات. من المهم قفل جميع الشاشات المتصلة على الفور في أي وقت حتى لا يتمكن المهاجمون من استخراج بيانات المستخدم حتى مع الوصول المادي إلى الجهاز.

يتم عرض نافذة القفل على جميع شاشات العرض الثانوية العامة (انظر KeyguardDisplayManager#isKeyguardShowable() ). يتحمل مالكو شاشات العرض الخاصة مسؤولية تأمين المحتوى عند قفل الجهاز.