Einstellung für das Verhalten bei der Foldsperre

Originalgerätehersteller können auf faltbaren Geräten eine Option konfigurieren, mit der Nutzer festlegen können, wie sich das äußere Display verhält, wenn sie das Gerät aus einem entsperrten und aufgeklappten Zustand zusammenfalten.

Die Einstellung befindet sich unter Einstellungen > Display > Apps nach Zuklappen weiter verwenden. Der Nutzer hat die folgenden drei Möglichkeiten:

  • Immer:Wenn der Nutzer das Gerät zuklappt, wird das Frontdisplay immer eingeschaltet und bleibt entsperrt.
  • Zum Fortfahren nach oben wischen:Wenn der Nutzer das Gerät zuklappt, wird der Keyguard ohne Authentifizierung angezeigt, es sei denn, eine App hält einen Wakelock. In diesem Fall bleibt das Gerät in der App aktiv. Dies ist die Standardeinstellung.
  • Nie:Wenn der Nutzer das Gerät zuklappt, wird es gesperrt und das Frontdisplay wird ausgeschaltet.

Einstellungsseite für das Verhalten bei der Faltungssperre

Abbildung 1: Einstellung für das Verhalten der Faltverriegelung.

Einstellung für das Verhalten der Foldsperre konfigurieren

Wenn Sie die Einstellung für das Verhalten der Faltverriegelung in den Einstellungen anzeigen möchten, müssen Sie den booleschen Wert config_fold_lock_behavior in der Overlay-Datei config.xml Ihres Geräts angeben:

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

Details zur Implementierung

Das Verhalten der Faltsperre wird durch eine Einstellung und mehrere Backend-Klassen gesteuert.

Einstellung und Benutzeroberfläche

Der Wert der Einstellung FOLD_LOCK_BEHAVIOR wird als String gespeichert, der der Auswahl des Nutzers unter Einstellungen > Display > Apps nach Zuklappen weiter verwenden entspricht:

Die Einstellung wird von display_settings.xml übernommen. Die Benutzeroberfläche der Einstellungsseite wird im Fragment FoldLockBehaviorSettings implementiert und die Einstellung wird von FoldLockBehaviorPreferenceController verwaltet.

Backend-Logik

Wenn das Gerät zusammengeklappt ist, steuern LogicalDisplayMapper und PowerManager das Verhalten des Geräts so:

  1. LogicalDisplayMapper liest den Wert der Einstellung FOLD_LOCK_BEHAVIOR mit FoldSettingProvider.
  2. Je nach Einstellungswert:
    • Wenn der Wert stay_awake_on_fold_key ist, bleibt das Gerät aktiv.
    • Wenn der Wert selective_stay_awake_key oder sleep_on_fold_key ist, sendet LogicalDisplayMapper ein #goToSleep-Signal an PowerManager.
      • Für selective_stay_awake_key enthält das Signal #goToSleep das Flag PowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP. Dadurch wird auf dem Gerät der Keyguard angezeigt, ohne dass eine Authentifizierung erforderlich ist.
      • Bei sleep_on_fold_key wird das Signal #goToSleep ohne dieses Flag gesendet, wodurch das Gerät gesperrt wird.