Перезагрузите телефон одним нажатием кнопки

Я делаю приложение для 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"});
Другие вопросы по тегам