Как программно завершить работу Android-устройства с помощью Intent или PowerManager API?

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

Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
            intent.putExtra("android.intent.extra.KEY_CONFIRM", false);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);

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

Примечание: я подписал приложение с подписями платформы. Поместил его в / system / app Добавлено <uses-permission android:name="android.permission.SHUTDOWN" /> разрешение в манифесте.

3 ответа

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

Java.Lang.Runtime.GetRuntime().Exec(new String[] { "/system/xbin/su", "-c", "reboot -p" });

и использовать этот код для перезагрузки

Java.Lang.Runtime.GetRuntime().Exec(new String[] { "/system/xbin/su", "-c", "reboot now" });

Я использую это на Xamarin.Android

Попробуйте этот код, это может помочь.

try {
    Process p = Runtime.getRuntime().exec(new String[]{ "su", "-c", "reboot" });
 p.waitFor();
} catch (Exception ex) {
    ex.printStackTrace();
}
Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
i.putExtra("android.intent.extra.KEY_CONFIRM", true);
startActivity(i);
Другие вопросы по тегам