Можно ли программно перезагрузить устройство с рутом и без рута?

В моем приложении для 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

Другие вопросы по тегам