我正在尝试重新启动我的Android设备(进行Android移植)以进行测试。
我的代码:
try {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("reboot");
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
Log.i("runtime","line : " + line);
}
} catch (Throwable t) {
t.printStackTrace();
}
但设备没有自行重启。
如果我将命令更改为
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("ls");
它运行良好,显示所有目录。
当我在adb shell中输入“reboot”时,它也有效。为什么???
reboot只是工具箱命令之一,我还运行其他可以在shell中运行的命令。 但是,除了'ls'之外,它们都不能用rt.exec工作。 有人可以告诉我如何使它从Android运行时工作? 感谢
答案 0 :(得分:1)
你不能在非root手机上这样做:
答案 1 :(得分:1)