赞
踩
最近在搞移动端串口通讯,使用的是官方的接口 android-SerialPort-api,这个接口里面需要对/dev这个文件夹下面的串口文件进行操作
所以demo里面要执行su命令对dev文件夹下面的ttySN文件进行权限更改,改为666,所以重点来了
我们先看下面的相关代码,
- if (!device.canRead() || !device.canWrite()) {
- try {
- /* Missing read/write permission, trying to chmod the file */
- Process su;
- su = Runtime.getRuntime().exec(sSuPath);
- String cmd = "chmod 666 " + device.getAbsolutePath() + "\n" + "exit\n";
- su.getOutputStream().write(cmd.getBytes());
- if ((su.waitFor() != 0) || !device.canRead() || !device.canWrite()) {
- throw new SecurityException();
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new SecurityException();
- }
- }
其中 su.getOutputStream().write(cmd.getBytes());
每次执行这句话的时候都会异常 java.io.IOException: write failed: EPIPE (Broken pipe)
以上操作相当于我们在代码中执行控制台shell命令,需要手机已经root
上面代码中变量device为选中的ttySn文件,以上代码是对其权限的修改相当于我们直接在控制台执行以下命令
结果是ok的,但是通过我上面列出的官方的demo会出现异常,
请问有没有哥们在使用android-SerialPort-api这个demo的时候有解决过相关问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。