Android 2.2:以编程方式重启设备

Joh*_*han 13 android reboot

我想知道是否有办法通过代码重启设备.我试过了:

Intent i = new Intent(Intent.ACTION_REBOOT); 
i.putExtra("nowait", 1); 
i.putExtra("interval", 1); 
i.putExtra("window", 0); 
sendBroadcast(i);
Run Code Online (Sandbox Code Playgroud)

并添加了权限,REBOOT但它仍然无法正常工作.

谢谢

sau*_*wer 35

这似乎对我有用:

try {
        Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "reboot" });
        proc.waitFor();
    } catch (Exception ex) {
        Log.i(TAG, "Could not reboot", ex);
    }
Run Code Online (Sandbox Code Playgroud)

  • 需要root. (4认同)

Ale*_*dam -4

如果手机root了,其实很简单:

try {
    Runtime.getRuntime().exec("su");
    Runtime.getRuntime().exec("reboot");
} catch (IOException e) {
}               
Run Code Online (Sandbox Code Playgroud)

第一个命令将请求超级用户权限。第二,将重新启动手机。清单文件中不需要额外的权限,因为实际的重新启动是由执行的命令处理的,而不是应用程序。

  • 答案没有用,因为“Runtime.getRuntime().exec(“your command”);” 总是在不同的会话中运行。因此“su”之后的“rebo​​ot”命令将不会在“su”权限下运行。所以你必须使用这个“Runtime.getRuntime().exec(new String[]{"/system/bin/su","-c","re​​boot now"}); ”,这对我有用。 (9认同)
  • 这不起作用,因为第二个命令将在与“su”进程不同的进程中运行。 (3认同)