OEM สามารถกำหนดค่าตัวเลือกในอุปกรณ์แบบพับได้ซึ่งช่วยให้ผู้ใช้เลือกได้ว่าหน้าจอด้านนอกจะทำงานอย่างไรเมื่อพับอุปกรณ์จากสถานะที่ปลดล็อกและกางออก
การตั้งค่านี้อยู่ในการตั้งค่า > จอแสดงผล > ใช้แอปต่อได้เมื่อพับ ผู้ใช้มีตัวเลือก 3 อย่างดังนี้
- เสมอ: เมื่อผู้ใช้พับอุปกรณ์ หน้าจอด้านหน้าจะเปิดขึ้นเสมอและยังคงปลดล็อกอยู่
- ปัดขึ้นเพื่อดำเนินการต่อ: เมื่อผู้ใช้พับอุปกรณ์ อุปกรณ์จะแสดง คีย์การ์ดโดยไม่ต้องมีการตรวจสอบสิทธิ์ เว้นแต่ว่าแอปจะถือ WakeLock ไว้ ในกรณีนี้อุปกรณ์จะยังคงทำงานในแอปต่อไป นี่คือ การตั้งค่าเริ่มต้น
- ไม่เลย: เมื่อผู้ใช้พับอุปกรณ์ อุปกรณ์จะล็อกและหน้าจอด้านหน้าจะปิด
รูปที่ 1 การตั้งค่าลักษณะการทำงานของการล็อกเมื่อพับ
กำหนดค่าการตั้งค่าลักษณะการทำงานของการล็อกเมื่อพับ
หากต้องการแสดงการตั้งค่าลักษณะการทำงานของการล็อกเมื่อพับในการตั้งค่า ให้ป้อนบูลีน
config_fold_lock_behavior
ในไฟล์config.xml
การวางซ้อนของอุปกรณ์
<!-- Whether to show Fold lock behavior setting feature in Settings app -->
<bool name="config_fold_lock_behavior">true</bool>
รายละเอียดการติดตั้งใช้งาน
ลักษณะการทำงานของการล็อกเมื่อพับจะควบคุมโดยการตั้งค่าและคลาสแบ็กเอนด์หลายรายการ
การตั้งค่าและ UI
ค่าของการตั้งค่า FOLD_LOCK_BEHAVIOR
จะยังคงเป็นสตริง
ซึ่งสอดคล้องกับการเลือกของผู้ใช้ในการตั้งค่า > การแสดงผล > ใช้
แอปต่อได้เมื่อพับ
- ทุกครั้ง:
stay_awake_on_fold_key
- ปัดขึ้นเพื่อดำเนินการต่อ:
selective_stay_awake_key
- ไม่เลย:
sleep_on_fold_key
การตั้งค่านี้เพิ่มขึ้นจาก display_settings.xml
UI ของหน้าการตั้งค่า
ได้รับการติดตั้งใช้งานใน Fragment FoldLockBehaviorSettings
และ
FoldLockBehaviorPreferenceController
จะจัดการค่ากำหนด
ตรรกะแบ็กเอนด์
เมื่อพับอุปกรณ์ LogicalDisplayMapper
และ
PowerManager
จะควบคุมลักษณะการทำงานของอุปกรณ์ดังนี้
LogicalDisplayMapper
อ่านค่าการตั้งค่าFOLD_LOCK_BEHAVIOR
โดยใช้FoldSettingProvider
- โดยขึ้นอยู่กับค่าการตั้งค่า
- หากค่าเป็น
stay_awake_on_fold_key
อุปกรณ์จะยังคงเปิดอยู่ - หากค่าเป็น
selective_stay_awake_key
หรือsleep_on_fold_key
LogicalDisplayMapper
จะส่งสัญญาณ#goToSleep
ไปยังPowerManager
- สำหรับ
selective_stay_awake_key
สัญญาณ#goToSleep
จะรวมถึง การแจ้งว่าไม่เหมาะสมPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP
ซึ่งจะ ทำให้อุปกรณ์แสดงหน้าจอล็อกโดยไม่ต้อง มีการตรวจสอบสิทธิ์ - สำหรับ
sleep_on_fold_key
ระบบจะส่งสัญญาณ#goToSleep
โดยไม่มี แฟล็กนี้ ทำให้อุปกรณ์ล็อก
- สำหรับ
- หากค่าเป็น