หน้าจอล็อก

การใช้งานหน้าจอล็อกเริ่มต้นของ AOSP ที่มีความสามารถในการปลดล็อก (Keyguard) จะปรากฏบนจอแสดงผลหลักเท่านั้น ใน Android 9 (และต่ำกว่า) หน้าจอรองรองรับหน้าต่างที่ล็อกเดียวในจอแสดงผลภายนอกเพียงจอเดียว ใน Android 10 หน้าจอล็อกจะขยายไปยังจอแสดงผลรองสาธารณะทั้งหมด หน้าจอล็อกจะยังคงเรียบง่ายและไม่รองรับการปลดล็อกจากหน้าจอรอง

รูปที่ 1 หน้าจอล็อกบนจอแสดงผลรอง

ผู้ผลิตอุปกรณ์สามารถใช้หน้าจอล็อกสำหรับจอแสดงผลสำรองได้หากปฏิบัติตามข้อกำหนดพื้นฐานด้านความปลอดภัย เมื่ออุปกรณ์ล็อกอยู่ ข้อมูลควรถูกซ่อนอย่างปลอดภัยบนจอแสดงผลทั้งหมด ไม่มีนโยบายหรือการควบคุมในตัวเกี่ยวกับเนื้อหาที่ควรแสดงหรือซ่อนเมื่ออุปกรณ์ล็อกอยู่ ดังนั้น วิธีเดียวที่ปลอดภัยในการใช้การเข้าถึงที่จํากัดคือการซ่อนเนื้อหาทั้งหมดไว้เบื้องหลังหน้าจอล็อกและหน้าต่างที่ล็อก ข้อยกเว้นเพียงอย่างเดียวคือแอปที่เลือกให้แสดงที่ด้านบนของหน้าจอล็อกอย่างชัดเจนโดยใช้เมธอด R.attr.showWhenLocked หรือ Activity.setShowWhenLocked() มิฉะนั้น อาจมีโอกาสสูงที่จะเกิดการรั่วไหลของข้อมูลจากจอแสดงผลสาธารณะและส่วนตัว

แม้ว่าจอแสดงผลจะอยู่ในสถานะต่างๆ ได้ (ON/OFF) แต่สถานะ "ล็อก" จะเป็นแบบรวมสำหรับจอแสดงผลทั้งหมด เช่นเดียวกับการติดตั้งใช้งานอุปกรณ์อื่นๆ ผู้ใช้ควรทราบอย่างชัดเจนเมื่ออุปกรณ์ล็อกอยู่ (หรือปลดล็อกอยู่) เช่น การกดปุ่มเปิด/ปิดมักจะล็อกอุปกรณ์เคลื่อนที่ ปุ่มเปิด/ปิดควรล็อกหน้าจอทั้งภายในและภายนอกด้วย

เนื่องจาก SystemUI เป็นเจ้าของหน้าต่างการล็อก จึงไม่วางหน้าต่างนี้ในจอแสดงผลส่วนตัว เจ้าของจอแสดงผลส่วนตัวมีหน้าที่รับผิดชอบในการซ่อนหน้าต่างและปกป้องเนื้อหาเมื่ออุปกรณ์ล็อกอยู่ การใช้งานระบบเริ่มต้นเท่านั้นที่จะซ่อนกิจกรรมในจอแสดงผลส่วนตัวโดยการเปลี่ยนระดับการมองเห็น

การใช้งาน

หน้าต่างการล็อกบนจอแสดงผลรองจะใช้เป็นหน้าต่างการนำเสนอใน KeyguardDisplayManager Android 10 เปลี่ยน KeyguardDisplayManager#mPresentations เป็นอาร์เรย์ที่เก็บหน้าต่างล็อกทั้งหมดสำหรับหน้าจอรองทั้งหมด KeyguardDisplayManager ยังมีโปรแกรมรับฟังการเปลี่ยนแปลงการแสดงผลเพื่อตอบสนองต่อการเปลี่ยนแปลงของจอแสดงผลที่ใช้ได้และรักษาความปลอดภัยให้กับหน้าจอทั้งหมด คุณควรล็อกจอแสดงผลที่เชื่อมต่อทั้งหมดทันทีในทุกๆ ครั้งเพื่อให้ผู้โจมตีไม่สามารถดึงข้อมูลผู้ใช้ได้ แม้ว่าจะมีสิทธิ์เข้าถึงอุปกรณ์ก็ตาม

หน้าต่างการล็อกจะแสดงบนจอแสดงผลรองสาธารณะทั้งหมด (ดูKeyguardDisplayManager#isKeyguardShowable()) เจ้าของจอแสดงผลส่วนตัวมีหน้าที่รับผิดชอบในการรักษาความปลอดภัยของเนื้อหาเมื่ออุปกรณ์ล็อกอยู่