【发布时间】:2014-04-28 21:03:28
【问题描述】:
下面这段代码成功重启了安卓设备:
Process p = Runtime.getRuntime().exec("su");
OutputStream outputStream = p.getOutputStream();
InputStream inputStream = p.getInputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
dataOutputStream.writeBytes("reboot");
dataOutputStream.flush();
dataOutputStream.close();
outputStream.close();
p.waitFor();
此代码应该停止当前正在运行的应用程序。但它什么也没做。
Process p = Runtime.getRuntime().exec("su");
OutputStream outputStream = p.getOutputStream();
InputStream inputStream = p.getInputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
dataOutputStream.writeBytes("am force-stop com.XXX.XXX.XXX");
dataOutputStream.flush();
dataOutputStream.close();
outputStream.close();
p.waitFor();
所有命令都通过 ADB Shell 运行,并且设备具有“su”脚本。 有我可以排除故障的过程吗?我该怎么办?
当 dataOutputStream.flush() 运行时,它给了我这个错误:
04-29 01:56:05.057:W/System.err(6969):java.io.SyncFailedException:fsync 失败:EINVAL(无效参数)
【问题讨论】:
-
您的问题是什么?你遇到了什么问题?
-
第二组代码不起作用,但第一组代码可以吗?有什么原因吗?
-
“不起作用”可能意味着任何事情,请具体说明。
-
添加了系统错误,并且不起作用意味着它没有做任何事情。但是来自 ADB 的相同命令将起作用。
标签: android exec android-4.2-jelly-bean su