下面的代码成功地重启了Android设备:
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 (无效参数)
发布于 2014-12-25 15:36:02
使用try-catch环绕写刷新
try{
dataOutputStream.writeBytes("am force-stop com.XXX.XXX.XXX");
dataOutputStream.flush();
}catch(IOException e){
}不影响exec结果!
https://stackoverflow.com/questions/23351143
复制相似问题