Как программно завершить работу 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);