Я ищу решение, которое можно использовать для перезагрузки корневого устройства. Я знаю, что перезагрузка устройства очень плохой дизайн для пользователя, как указано здесь, и это не совсем для приложения. Основная цель - перезагрузить телефон во время моих тестов (я работаю над приложением для видеочата, а иногда мне нужно перезагружаться, когда все идет на юг)
Я заметил, что перезагрузка телефона намного быстрее при перезагрузке в терминале (например, adb shell
или ConnectBot), чем обычная перезагрузка с помощью ACTION_REBOOT, что я не могу использовать в любом случае.
На данный момент я могу получить привилегии суперпользователя,
Process root = Runtime.getRuntime().exec("su");
Но я не могу выполнить фактическую перезагрузку. Я стараюсь использовать G1 (HTC) и Galaxy S (Samsung) без каких-либо успехов. Я нашел исполняемый файл перезагрузки в /system/bin/reboot
Вот некоторые из моих попыток:
Process reboot = Runtime.getRuntime().exec("/system/bin/reboot");
Process reboot = Runtime.getRuntime().exec("reboot");
Process reboot = Runtime.getRuntime().exec("su reboot");
Я прочитал эту статью о подводных камнях Runtime.exec(), но я думаю, что я не в этом случае.
Как использование ConnectBot позволяет мне делать такое действие, я уверен, что это возможно. Пожалуйста, не говорите мне пойти и посмотреть на код ConnectBot, это большой и сложный проект:)
Вы можете помочь мне с этой проблемой?
Спасибо.