Перезагрузите телефон одним нажатием кнопки - PullRequest
10 голосов
/ 11 февраля 2011

Я создаю приложение для Android, которое требует перезагрузки или выключения телефона при нажатии кнопки. Это возможно? Или для телефона потребуется root-доступ?

Ответы [ 3 ]

19 голосов
/ 11 февраля 2011

Вы можете сделать это, используя android.os.PowerManager.Функция reboot(String reason) доступна, вам необходимо разрешение:

android.permission.REBOOT

Официальный сайт:

http://developer.android.com/reference/android/os/PowerManager.html#reboot(java.lang.String)

Конечно, вы, вероятно, получите это разрешение, только еслиВаше приложение подписано с помощью ключа подписи системы:

Как скомпилировать приложение Android с системными разрешениями

1 голос
/ 10 декабря 2016

Я сделал это в своем приложении, вызвав метод ниже.

Примечания: 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);
          }

        }
  }
0 голосов
/ 22 июля 2016

Если ваше устройство является рутованным устройством, вы можете использовать следующий код:

Runtime.getRuntime().exec(new String[]{"/system/bin/su", "-c", "reboot now"});
...