Producenci OEM mogą skonfigurować na urządzeniach składanych opcję, która pozwala użytkownikom wybrać, jak ma się zachowywać zewnętrzny ekran po złożeniu urządzenia z odblokowanego i rozłożonego stanu.
To ustawienie znajdziesz w sekcji Ustawienia > Wyświetlacz > Kontynuuj korzystanie z aplikacji po złożeniu. Użytkownik ma do wyboru 3 opcje:
- Zawsze: gdy użytkownik złoży urządzenie, przedni ekran zawsze się włącza i pozostaje odblokowany.
- Przesuń w górę, aby kontynuować: gdy użytkownik złoży urządzenie, wyświetli się blokada ekranu bez konieczności uwierzytelniania, chyba że aplikacja utrzymuje blokadę wybudzenia. W takim przypadku urządzenie pozostanie włączone w aplikacji. Jest to ustawienie domyślne.
- Nigdy:gdy użytkownik złoży urządzenie, zostanie ono zablokowane, a przedni ekran wyłączy się.
Rysunek 1. Ustawienie zachowania blokady po złożeniu.
Konfigurowanie ustawienia działania blokady po złożeniu
Aby wyświetlić ustawienie zachowania blokady po złożeniu w Ustawieniach, wypełnij wartość logiczną config_fold_lock_behavior
w pliku nakładki urządzenia:config.xml
<!-- Whether to show Fold lock behavior setting feature in Settings app -->
<bool name="config_fold_lock_behavior">true</bool>
Szczegóły implementacji
Działanie blokady po złożeniu jest kontrolowane przez ustawienie i kilka klas backendu.
Ustawienia i interfejs
Wartość ustawienia FOLD_LOCK_BEHAVIOR
jest zapisywana jako ciąg znaków, który odpowiada wyborowi użytkownika w sekcji Ustawienia > Wyświetlacz > Nadal używaj aplikacji po złożeniu:
- Zawsze:
stay_awake_on_fold_key
- Przesuń w górę, aby kontynuować:
selective_stay_awake_key
- Nigdy:
sleep_on_fold_key
Ustawienie zostało zwiększone z display_settings.xml
. Interfejs strony ustawień jest zaimplementowany we fragmencie FoldLockBehaviorSettings
, a ustawieniem zarządza FoldLockBehaviorPreferenceController
.
Logika systemów wewnętrznych
Gdy urządzenie jest złożone, LogicalDisplayMapper
i PowerManager
sterują jego działaniem w ten sposób:
LogicalDisplayMapper
odczytuje wartość ustawieniaFOLD_LOCK_BEHAVIOR
za pomocą funkcjiFoldSettingProvider
.- Na podstawie wartości ustawienia:
- Jeśli wartość to
stay_awake_on_fold_key
, urządzenie pozostaje aktywne. - Jeśli wartość to
selective_stay_awake_key
lubsleep_on_fold_key
,LogicalDisplayMapper
wysyła doPowerManager
sygnał#goToSleep
.- W przypadku sygnału
selective_stay_awake_key
sygnał#goToSleep
zawiera flagęPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP
. Spowoduje to wyświetlenie ekranu blokady bez konieczności uwierzytelniania. - W przypadku
sleep_on_fold_key
sygnał#goToSleep
jest wysyłany bez tego flagi, co powoduje zablokowanie urządzenia.
- W przypadku sygnału
- Jeśli wartość to