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:
LogicalDisplayMapper
legge il valore dell'impostazioneFOLD_LOCK_BEHAVIOR
utilizzandoFoldSettingProvider
.- In base al valore dell'impostazione:
- Se il valore è
stay_awake_on_fold_key
, il dispositivo rimane attivo. - Se il valore è
selective_stay_awake_key
osleep_on_fold_key
,LogicalDisplayMapper
invia un indicatore#goToSleep
aPowerManager
.- Per
selective_stay_awake_key
, il segnale#goToSleep
include 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#goToSleep
viene inviato senza questo flag, causando il blocco del dispositivo.
- Per
- Se il valore è