Как программно перезагрузить телефон
Вроде бы и вопрос не редкий, но у меня никак не получается перезагрузить телефон имея рут. (вариант с кнопкой, естественно, не приемлем)
В Manifest напихал, всё что нашёл:
<uses-permission android:name="android.intent.action.BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<user-permission android:name="android.permission.REBOOT"/>
1) Runtime.getRuntime().exec("system/bin/su").write("reboot").getBytes(); ошибка - подчёркнуто write
2)
void shotdown() throws IOException {
Runtime.getRuntime().exec(new String[]{"su", "-c", "reboot -p"});}
при запуске метода - приложение вылетает.
3) Пробовал много вариантов через интенты - ничего.
Может уже есть нетрадиционные варианты? Ну, например, программно осуществить "звонок" на системный код, типа ##код## или хоть уже с какими то костылями =) Неужели я уже не имею права перезагрузить свой телефон?
Ответы (1 шт):
Требуемый пермишен не относится к вашему методу перезагрузки, так как ваш метод требует телефон рутом(с su). Для перезагрузки телефона требуется пермишен, как и раньше, но использовать метод PowerManager # reboot.
PowerManager pm = (PowerManager) getSystemService (Context.POWER_SERVICE);
pm.reboot (null);