การตั้งค่าลักษณะการทำงานของการล็อกเมื่อพับ

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 จะยังคงเป็นสตริง ซึ่งสอดคล้องกับการเลือกของผู้ใช้ในการตั้งค่า > การแสดงผล > ใช้ แอปต่อได้เมื่อพับ

การตั้งค่านี้เพิ่มขึ้นจาก display_settings.xml UI ของหน้าการตั้งค่า ได้รับการติดตั้งใช้งานใน Fragment FoldLockBehaviorSettings และ FoldLockBehaviorPreferenceController จะจัดการค่ากำหนด

ตรรกะแบ็กเอนด์

เมื่อพับอุปกรณ์ LogicalDisplayMapper และ PowerManager จะควบคุมลักษณะการทำงานของอุปกรณ์ดังนี้

  1. LogicalDisplayMapper อ่านค่าการตั้งค่า FOLD_LOCK_BEHAVIOR โดยใช้ FoldSettingProvider
  2. โดยขึ้นอยู่กับค่าการตั้งค่า
    • หากค่าเป็น 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 โดยไม่มี แฟล็กนี้ ทำให้อุปกรณ์ล็อก