Gli OEM possono configurare un'opzione sui dispositivi pieghevoli che consente agli utenti di scegliere il comportamento dello schermo esterno quando piegano il dispositivo da uno stato sbloccato e aperto.
L'impostazione si trova in Impostazioni > Display > Continua a usare le app quando chiuso. L'utente ha le seguenti tre opzioni:
- Sempre: quando l'utente chiude il dispositivo, il display frontale si accende sempre e rimane sbloccato.
- Scorri verso l'alto per continuare:quando l'utente chiude il dispositivo, questo mostra la tastiera protetta senza richiedere l'autenticazione, a meno che un'app non mantenga un wakelock, nel qual caso il dispositivo rimane attivo sull'app. Questa è l'impostazione predefinita.
- Mai: quando l'utente chiude il dispositivo, questo si blocca e il display frontale si spegne.
Figura 1. Impostazione del comportamento di blocco della piega.
Configurare l'impostazione del comportamento di blocco della piega
Per visualizzare l'impostazione del comportamento di blocco della piega in Impostazioni, compila il valore booleano
config_fold_lock_behavior nel file di overlay config.xml
del dispositivo:
<!-- Whether to show Fold lock behavior setting feature in Settings app -->
<bool name="config_fold_lock_behavior">true</bool>
Dettagli di implementazione
Il comportamento di blocco della piega è controllato da un'impostazione e da diverse classi di backend.
Impostazioni e UI
Il valore dell'impostazione FOLD_LOCK_BEHAVIOR viene mantenuto come stringa,
che corrisponde alla selezione dell'utente in Impostazioni > Display > Continua
a usare le app quando chiuso:
- Sempre:
stay_awake_on_fold_key - Scorri verso l'alto per continuare:
selective_stay_awake_key - Mai:
sleep_on_fold_key
L'impostazione è stata aumentata da display_settings.xml. La UI della pagina delle impostazioni
è implementata nel fragmento FoldLockBehaviorSettings e la
preferenza è gestita da FoldLockBehaviorPreferenceController.
Logica back-end
Quando il dispositivo è chiuso, LogicalDisplayMapper e
PowerManager controllano il comportamento del dispositivo come segue:
LogicalDisplayMapperlegge il valore dell'impostazioneFOLD_LOCK_BEHAVIORutilizzandoFoldSettingProvider.- In base al valore dell'impostazione:
- Se il valore è
stay_awake_on_fold_key, il dispositivo rimane attivo. - Se il valore è
selective_stay_awake_keyosleep_on_fold_key,LogicalDisplayMapperinvia un indicatore#goToSleepaPowerManager.- Per
selective_stay_awake_key, il segnale#goToSleepinclude il flagPowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP. In questo modo il dispositivo mostra la schermata di blocco senza richiedere l'autenticazione. - Per
sleep_on_fold_key, il segnale#goToSleepviene inviato senza questo flag, causando il blocco del dispositivo.
- Per
- Se il valore è