Runtime.exec (): reinicialização no Android?

Estou procurando uma solução que possa ser usada para reiniciar um dispositivo raiz. Eu sei que a reinicialização de um dispositivo é um design muito ruim para o usuário, como indicado aqui, e não é realmente para um aplicativo. O principal objetivo é reiniciar o telefone durante meus testes (eu trabalho em um aplicativo de bate-papo por vídeo e às vezes preciso reiniciar quando tudo der para o sul)

Eu observei que reiniciar um telefone é muito mais rápido usando a reinicialização em um terminal adb shell ou ConnectBot, por exemplo) do que o processo normal de reinicialização com o ACTION_REBOOT, que eu não posso usar de qualquer maneir

No momento, sou capaz de obter os privilégios de superusuário, com

Process root = Runtime.getRuntime().exec("su");

Mas não posso fazer a reinicialização real. Eu tento um G1 (HTC) e um Galaxy S (Samsung) sem sucesso. Eu localizei o executável de reinicialização em/system/bin/reboot

qui estão algumas das minhas tentativa

Process reboot = Runtime.getRuntime().exec("/system/bin/reboot");
Process reboot = Runtime.getRuntime().exec("reboot");
Process reboot = Runtime.getRuntime().exec("su reboot"); 

Eu liEste artig sobre as armadilhas do Runtime.exec (), mas acho que não estou nesse cas

Como o uso do ConnectBot me permite executar tal ação, tenho certeza de que é possível. Por favor, não me diga para ir e dar uma olhada noConnectBot code, é um projeto grande e complicado:)

Pode me ajudar com esse problema?

Obrigado

questionAnswers(5)

yourAnswerToTheQuestion