2012-12-13 15 views
10

Desidero implementare alcune linee di codice che consentono di attivare/disattivare lo schermo di Android come accendere/spegnere rapidamente il dispositivo utilizzando il pulsante di accensione. C'è un modo per farlo?Accensione/spegnimento del dispositivo Android

+0

Vuoi bloccare il dispositivo o spegnerlo? – cjds

+0

L'esattamente ciò che voglio è richiamare il display LockScreen. Dopo lo spegnimento dello schermo -> accenderlo -> verrà visualizzato il LockScreen. Hai qualche suggerimento? – Nguyen

+0

Se si verifica un errore di runtime, ho pubblicato una soluzione – cjds

risposta

2

Sembra che tu voglia bloccare il dispositivo non lo spenga. Per bloccare il dispositivo è un codice semplice. Menzionato here

Utilizza Policy device Manager lockNow() metodo

In caso di RuntimeError utilizzare il metodo descritto in questa domanda di impostare le autorizzazioni

Android DevicePolicyManager lockNow()

http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html

Per spegnere la dispositivo:

questo non è possibile, ma si può riavviare il sistema utilizzando PowerManager

http://developer.android.com/reference/android/os/PowerManager.html#reboot

Nota questo richiede il permesso riavvio e sistema operativo può annullarla.

+0

Sto lavorando su Android framework, quindi forse ci sono alcune differenze tra applicazione e framework bwt. Ancora non funziona. Comunque, grazie per la tua risposta – Nguyen

0

Sì, si può fare con la programmazione utilizzando sottostante Codice, Nota: Questa soluzione funziona solo su dispositivi radicata

Shutdown:

try { 
    Process proc = Runtime.getRuntime() 
        .exec(new String[]{ "su", "-c", "reboot -p" }); 
    proc.waitFor(); 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 

Riavvio:

Stesso codice, utilizzare solo "reboot" anziché "reboot -p".

Problemi correlati