Как программно отключить Android-мобиль?

Можно ли программно завершить работу мобильного устройства. То есть без использования команд su.

Solutions Collecting From Web of "Как программно отключить Android-мобиль?"

Возможно, вы можете использовать PowerManager для его перезагрузки (это не гарантирует перезагрузки операционной системы, OS может отменить его):

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

Для этого требуется разрешение REBOOT:

http://developer.android.com/reference/android/Manifest.permission.html#REBOOT

Можете ли вы также проверить свой логарифм при попытке включить / отключить блокировку клавиатуры и опубликовать то, что там?

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

Это возможно, но вам необходимо Rooted Android-устройство с доступом Superuser . Вы не можете сделать это без Root, если ваше приложение не подписано с System Firmware Key . Попробуйте использовать следующий код:

Неисправность:

 try { Process proc = Runtime.getRuntime() .exec(new String[]{ "su", "-c", "reboot -p" }); proc.waitFor(); } catch (Exception ex) { ex.printStackTrace(); } 

Перезагружать:

Тот же код, просто используйте "reboot" вместо "reboot -p" .

[С другой стороны: я где-то читал, что эти команды не работают на Stock HTC ROMs, но не подтвердили себя]

Это код, который я использую для выполнения любой системной команды.

 void shutdown_sys() { Process chperm; try { chperm=Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(chperm.getOutputStream()); os.writeBytes("shutdown\n"); os.flush(); chperm.waitFor(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

Вызовите эту функцию из своего приложения Android. Он будет работать, если su функционирует в вашей системе. Дайте мне знать, если это не сработает. У меня нет базы Android, готовой к тестированию. Но то же самое работает для перезагрузки. Таким образом, shutdown также является командной оболочкой Linux, которая также будет присутствовать на Android. Все самое лучшее

Я не вижу никакого сходства с вашим названием и фрагментом кода в теле. Этот фрагмент связан с KeyGuardManager, который используется для блокировки и разблокировки клавиатуры.

Чтобы выключить телефон, вам нужно будет использовать команды PowerManager или SU. (На корневых устройствах.)

Если ваше устройство внедрено, вы можете попробовать ниже решение

Неисправность:

 try { Process proc = Runtime.getRuntime() .exec(new String[]{ "su", "-c", "reboot -p" }); proc.waitFor(); } catch (Exception ex) { ex.printStackTrace(); } 

Перезапуск:

Тот же код, просто используйте "reboot" вместо "reboot -p" .