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
設定的值會以字串形式保留,對應使用者在「設定」>「螢幕」>「折疊時繼續使用應用程式」中的選取項目:
- 一律:
stay_awake_on_fold_key
- 向上滑動繼續操作:
selective_stay_awake_key
- 從未使用:
sleep_on_fold_key
這項設定是從 display_settings.xml
擴充而來。設定頁面 UI 是在 FoldLockBehaviorSettings
片段中實作,偏好設定則由 FoldLockBehaviorPreferenceController
管理。
後端邏輯
裝置摺疊時,LogicalDisplayMapper
和 PowerManager
會控制裝置行為,如下所示:
LogicalDisplayMapper
會使用FoldSettingProvider
讀取FOLD_LOCK_BEHAVIOR
設定值。- 視設定值而定:
- 如果值為
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
旗標。這會導致裝置顯示 Keyguard,不需要驗證。 - 對於
sleep_on_fold_key
,系統會傳送#goToSleep
信號,但不會使用這個旗標,導致裝置鎖定。
- 如果是
- 如果值為