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:
LogicalDisplayMapperodczytuje wartość ustawieniaFOLD_LOCK_BEHAVIORza 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_keylubsleep_on_fold_key,LogicalDisplayMapperwysyła doPowerManagersygnał#goToSleep.- W przypadku sygnału
selective_stay_awake_keysygnał#goToSleepzawiera flagęPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP. Spowoduje to wyświetlenie ekranu blokady bez konieczności uwierzytelniania. - W przypadku
sleep_on_fold_keysygnał#goToSleepjest wysyłany bez tego flagi, co powoduje zablokowanie urządzenia.
- W przypadku sygnału
- Jeśli wartość to