Можно ли программно перезагрузить устройство с рутом и без рута?
В моем приложении для Android, я хочу перезагрузить устройство Android по нажатию кнопки. Но он работает в рутированном телефоне, а не в рутированном телефоне.
try {
Runtime.getRuntime().exec(new String[]{"su","-c","reboot now"}));
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
Можно ли перезагрузить как рутированные, так и нерутированные андроид устройства?
1 ответ
Если что-то не изменилось в последнее время, вы не сможете перезагрузить нерутованный телефон программно, из обычного приложения.
Вы можете сделать это, если приложение подписано ключом системной прошивки (чего не будет в обычном приложении).
Если вы идете по маршруту рутированного устройства, то имейте в виду, что у исполняющей функции exec есть некоторые характеристики, которые означают, что она не всегда может вести себя так, как вы ожидаете.
Вместо того, чтобы изучать этот трудный путь, здесь есть отличное резюме: http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html