Как открыть диалоговое окно для перезагрузки, выключения и т. д. с помощью программного нажатия кнопки?

try {
    Runtime.getRuntime().exec(new String[]{"/system/xbin/su","-c","reboot now"});
} catch (IOException e) {
    e.printStackTrace();
}

видеть это

он генерирует исключение:

java.io.IOException: Cannot run program "/system/xbin/su": error=2, No such file or directory[![enter image description here][1]][1]

2 ответа

Чтобы использовать Runtime, ваше устройство должно быть рутировано.

Вы можете использовать Power Manager для перезагрузки, но ОС может отменить его (перезагрузка не гарантируется, документ здесь: https://developer.android.com/reference/android/os/PowerManager),

Для выключения я уверен, что это невозможно, потому что вы не можете сделать это из обычного приложения SDK. Это могут делать только приложения, подписанные с помощью ключа подписи микропрограммы системы.

Чтобы запустить этот Runtime.getRuntime(). Exec(new String[]{"/system/xbin/su","-c","reboot now"}); Команда вашего устройства должна быть рутирована. И ваше устройство должно быть владельцем.

Для подробного описания прочитайте эти документы и программно перезагрузите Android Things

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