Команды выключения/перезагрузки суперпользователя Android ничего не делают

Я пытаюсь сделать приложение, которое может выключать/перезагружать телефон одним нажатием кнопки. Нашел в сети команду для перезагрузки:

public void rebootPhone() {
    try {
        Runtime.getRuntime().exec("su");
        Runtime.getRuntime().exec("reboot");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Я понимаю, что для этого требуется root (для команды суперпользователя «su»); Мой телефон был рутирован, поэтому я могу получить доступ к su. Однако, когда этот метод запускается (после того, как я нажимаю «да» в приглашении, чтобы разрешить доступ su), телефон не перезагружается, ничего не происходит! Есть ли что-то еще, что мне нужно включить, чтобы телефон перезагрузился?

Кроме того, что такое команда su для выключения (то есть просто для выключения телефона)? Я не могу найти его нигде в сети.


person AndroidNoob    schedule 03.06.2011    source источник
comment
Что плохого в том, чтобы зажать кнопку питания, чтобы вызвать меню перезагрузки?   -  person Chris Stratton    schedule 03.06.2011
comment
ничего такого! это приложение чисто для удобства :)   -  person AndroidNoob    schedule 03.06.2011


Ответы (1)


Вы не можете «su» в одном процессе и «перезагрузить» в другом, ожидая, что он будет иметь статус суперпользователя. Однако вам может помочь команда «su -c reboot».

person mah    schedule 03.06.2011
comment
Может работать. Не все версии su взломаны, чтобы использовать аргументы поддержки, возможно, вам придется поместить команду для выполнения в стандартный ввод созданной su оболочки. - person Chris Stratton; 03.06.2011
comment
Runtime.getRuntime().exec("su -c reboot"); сработало, спасибо :) случайно не знаете команду выключения? Я пробовал Runtime.getRuntime().exec("su -c shutdown"); ничего не помогает... - person AndroidNoob; 03.06.2011
comment
@Keiron Gulrajani Боюсь, я не знаю стандартной команды Android для выключения устройства. - person mah; 03.06.2011
comment
есть ли возможность использовать это без su ? - person Sathish; 28.08.2015
comment
@Sathish Я не смотрел на Android годами, поэтому я не знаю, что сейчас актуально, но я надеюсь, что нет, поскольку это слишком упростило бы вредоносному приложению создание атаки типа «отказ в обслуживании». - person mah; 28.08.2015