L'utente si aspetta che la mia app spenga lo schermo dopo essere stata utilizzata. Al momento, ottengo ciò con i diritti di Device Administrator e DevicePolicyManager.lockNow()
, che funziona bene se le impostazioni di sicurezza sono impostate su PIN/Pattern/FaceUnlock, ecc.DevicePolicyManager.lockNow(); non disattiva lo schermo quando le impostazioni di sicurezza sono impostate su Diapositiva/Nessuno
Tuttavia, se si utilizza Diapositiva/Nessuno, il comando sopra riportato riprende semplicemente utente alla homescreen (o non fa nulla), il che è comprensibile, dal momento che non c'è nulla da "bloccare". C'è un modo per ottenere lo spegnimento dello schermo in una situazione del genere? La mia app richiede SDK> = 16, se questo è importante.
Quindi credo che la mia domanda è: Come può un app commutare in modo affidabile fuori dallo schermo (non sto in possesso di un wakelock
, sto usando il WindowManager
-flags FLAG_TURN_SCREEN_ON
in onAttachedToWindow()
).
Il "flusso" della mia app è:
- L'attività è iniziata da un intento, mentre lo schermo è spento, mostra sopra il blocco della tastiera/interruttori sullo schermo con le bandiere suddette
- utente chiude attivamente mia Attività, chiamo lockNow()
e finish()
e l'utente si aspetta che lo schermo si spenga. Se l'utente sta utilizzando il blocco nessuno/diapositiva, questo non funziona e viene visualizzata la schermata iniziale dell'utente
Grazie!
Se si sviluppa un'applicazione di sistema (ad esempio, firmato con la chiave della piattaforma), è possibile utilizzare il [ 'metodo goToSleep' della classe' PowerManager'] (http://developer.android.com/reference/android /os/PowerManager.html#goToSleep%28long%29) ... – dst
Grazie, dst! Sfortunatamente, è un'app "normale": -/ – Nick
Se si richiede 'WRITE_SETTINGS', è possibile impostare il timeout dello schermo su 1 secondo -' android.provider.Settings.System.putInt (getContentResolver(), Settings.System. SCREEN_OFF_TIMEOUT, 1000); ' Ovviamente, si stanno rovinando le impostazioni dell'utente, ma non riesco a trovare un modo migliore per farlo. Io ** ho ** visto app che lo fanno - NoLED è l'esempio più importante. – Delyan