2012-05-02 17 views
7

¿Es posible apagar el dispositivo mediante programación? que es sin utilizar los comandos Do ..¿Cómo cerrar un móvil Android programáticamente?

+0

Posible duplicado. Usted tiene la respuesta aquí http://stackoverflow.com/questions/3745523/programmatically-switching-off-android-phone –

+1

@MayuMayooresan no están trabajando para mí – Venkat

+0

Downvoted debido a la ortografía y la gramática deficientes. – unforgettableid

Respuesta

4

Usted podría utilizar el PowerManager para hacer que se reinicie (esto no garantiza que va a reiniciar - OS puede anularlo):

http://developer.android.com/reference/android/os/PowerManager.html#reboot(java.lang.String)

se requiere el permiso de reinicio:

http://developer.android.com/reference/android/Manifest.permission.html#REBOOT

Puede también comprobar su logcat cuando se trata de activar/desactivar el bloqueo de teclas, y después de lo que hay allí?

No puede hacer esto desde una aplicación de SDK normal. Solo las aplicaciones firmadas con la clave de firma del firmware del sistema pueden hacer esto

+0

no necesito reiniciar solo quiero apagar – Venkat

+0

@Krishnakant Dalal ¿es posible desactivar el apagado/silencio programáticamente? cuando el dispositivo está bloqueado o desbloqueado? – rup35h

1

No veo ningún parecido con su título y el fragmento de código en el cuerpo. El fragmento está relacionado con KeyGuardManager, que se utiliza para bloquear y desbloquear el teclado.

Para apagar su teléfono, necesitará usar los comandos de PowerManager o SU. (En dispositivos rooteados.)

+0

Sí .. Pero dado que el móvil está rooteado. –

2

Este es el código que uso para realizar cualquier comando del sistema.

void shutdown_sys() 
{ 
    Process chperm; 
    try { 
     chperm=Runtime.getRuntime().exec("su"); 
      DataOutputStream os = 
       new DataOutputStream(chperm.getOutputStream()); 

       os.writeBytes("shutdown\n"); 
       os.flush(); 

       chperm.waitFor(); 

    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

Llame a esta función desde su aplicación de Android. Funcionará si su es funcional en su sistema. Avíseme en caso de que no funcione. No tengo una base de Android lista para probar. Pero lo mismo funciona para reiniciar. Así que shutdown es también un comando linux shell que ithink también estará disponible en Android .. Todo lo mejor

+0

¿cómo puedo saber si está funcionando o no en mi sistema? – Venkat

+0

¿Está rooteado su teléfono? –

+0

lo siento, no sé el significado de rooteado .. – Venkat

8

Es posible, pero necesitas un dispositivo Android Rooted con de acceso. No puede hacerlo sin Root a menos que su aplicación esté firmada con el System Firmware Key. Trate de usar el siguiente código:

apagado:

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

Reinicio:

mismo código, sólo tiene que utilizar en lugar de "reboot""reboot -p".

[En una nota aparte: He leído en alguna parte que estos comandos no funcionan en la ROM de HTC, pero no han confirmado a mí mismo]

+1

pruebo este código de apagado, pero reinicia el teléfono no se apaga –

+3

¿Estás seguro de que usaste "reiniciar -p" y no solo "reiniciar". También díganos su dispositivo, versión android y rom. – Sheharyar

+0

@Sheharyar ¿Es posible desactivar el apagado/silencio programáticamente? cuando el dispositivo está bloqueado o desbloqueado? – rup35h

0

Si el dispositivo tiene sus raíces entonces se puede tratar a continuación la solución

apagado:

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

Reiniciar:

Mismo código, solo use "reboot" en lugar de "reboot -p".

Cuestiones relacionadas