摺疊鎖定行為設定

OEM 可以在折疊式裝置上設定選項,讓使用者選擇將裝置從解鎖且展開的狀態折疊時,外螢幕的運作方式。

這項設定位於「設定」>「螢幕」>「折疊時繼續使用應用程式」。 使用者有以下三種選擇:

  • 「一律允許」:使用者摺疊裝置時,封面螢幕一律會開啟並保持解鎖狀態。
  • 向上滑動繼續使用:使用者摺疊裝置時,裝置會顯示 Keyguard,不需驗證。不過,如果應用程式持有喚醒鎖定,裝置就會保持喚醒狀態,並顯示該應用程式。這是預設設定。
  • 「永不」:使用者摺疊裝置後,裝置會鎖定並關閉封面螢幕。

摺疊鎖定行為設定頁面

圖 1. 摺疊鎖定行為設定。

設定摺疊鎖定行為

如要在「設定」中顯示摺疊鎖定行為設定,請在裝置的疊加 config.xml 檔案中填入 config_fold_lock_behavior 布林值:

  <!-- Whether to show Fold lock behavior setting feature in Settings app -->
  <bool name="config_fold_lock_behavior">true</bool>

導入作業詳細資料

摺疊鎖定行為是由一項設定和多個後端類別控管。

設定和使用者介面

FOLD_LOCK_BEHAVIOR 設定的值會以字串形式保留,對應使用者在「設定」>「螢幕」>「折疊時繼續使用應用程式」中的選取項目:

這項設定是從 display_settings.xml 擴充而來。設定頁面 UI 是在 FoldLockBehaviorSettings 片段中實作,偏好設定則由 FoldLockBehaviorPreferenceController 管理。

後端邏輯

裝置摺疊時,LogicalDisplayMapperPowerManager 會控制裝置行為,如下所示:

  1. LogicalDisplayMapper 會使用 FoldSettingProvider 讀取 FOLD_LOCK_BEHAVIOR 設定值。
  2. 視設定值而定:
    • 如果值為 stay_awake_on_fold_key,裝置會保持喚醒狀態。
    • 如果值為 selective_stay_awake_keysleep_on_fold_keyLogicalDisplayMapper 會將 #goToSleep 信號傳送至 PowerManager
      • 如果是 selective_stay_awake_key#goToSleep 信號會包含 PowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP 旗標。這會導致裝置顯示 Keyguard,不需要驗證。
      • 對於 sleep_on_fold_key,系統會傳送 #goToSleep 信號,但不會使用這個旗標,導致裝置鎖定。