Я делаю Android-приложение, которое необходимо перезагрузить или выключить телефон при нажатии кнопки. Это возможно? Или телефон потребует доступа root?
Перезагрузите телефон нажатием кнопки.
Ответ 1
Вы можете сделать это, используя android.os.PowerManager
. Функция reboot(String reason)
доступна, вам необходимо разрешение:
android.permission.REBOOT
Официальный сайт:
http://developer.android.com/reference/android/os/PowerManager.html#reboot(java.lang.String)
Конечно, вы, скорее всего, получите это разрешение, только если ваше приложение подписано с ключом подписи системы:
Ответ 2
Я сделал это в своем приложении, вызвав метод ниже.
Примечания: 1. Убедитесь, что телефон укоренен 2. Разрешить приложению в корневом менеджере автоматически предоставлять права root.
void reboot() {
if (reboot) {
try {
Process proc = Runtime.getRuntime().exec(new String[]{"/system/bin/su", "-c", "reboot"});
proc.waitFor();
} catch (Exception ex) {
Log.e(TAG, "Error ", ex);
}
}
}
Ответ 3
Если ваше устройство является корневым устройством, вы можете использовать код ниже.
Runtime.getRuntime().exec(new String[]{"/system/bin/su", "-c", "reboot now"});