Перезагрузите телефон одним нажатием кнопки
Я делаю приложение для Android, которое требует перезагрузки или выключения телефона при нажатии кнопки. Это возможно? Или телефон будет требовать root-доступ?
3 ответа
Вы можете сделать это с помощью android.os.PowerManager
, функция reboot(String reason)
доступно, вам нужно разрешение:
android.permission.REBOOT
Официальный сайт:
http://developer.android.com/reference/android/os/PowerManager.html
Конечно, вы, вероятно, получите это разрешение, только если ваше приложение подписано с помощью ключа подписи системы:
Как скомпилировать Android-приложение с системными разрешениями
Я сделал это в своем приложении, вызвав метод ниже.
Примечания: 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);
}
}
}
Если ваше устройство является рутированным устройством, вы можете использовать приведенный ниже код.
Runtime.getRuntime().exec(new String[]{"/system/bin/su", "-c", "reboot now"});