当前位置:   article > 正文

使用android-SerialPort-api时候出现问题(android代码执行shell命令)_android-serialport-api:2.0.0

android-serialport-api:2.0.0

最近在搞移动端串口通讯,使用的是官方的接口 android-SerialPort-api,这个接口里面需要对/dev这个文件夹下面的串口文件进行操作

所以demo里面要执行su命令对dev文件夹下面的ttySN文件进行权限更改,改为666,所以重点来了

我们先看下面的相关代码,

  1. if (!device.canRead() || !device.canWrite()) {
  2. try {
  3. /* Missing read/write permission, trying to chmod the file */
  4. Process su;
  5. su = Runtime.getRuntime().exec(sSuPath);
  6. String cmd = "chmod 666 " + device.getAbsolutePath() + "\n" + "exit\n";
  7. su.getOutputStream().write(cmd.getBytes());
  8. if ((su.waitFor() != 0) || !device.canRead() || !device.canWrite()) {
  9. throw new SecurityException();
  10. }
  11. } catch (Exception e) {
  12. e.printStackTrace();
  13. throw new SecurityException();
  14. }
  15. }

 

其中 su.getOutputStream().write(cmd.getBytes());

每次执行这句话的时候都会异常 java.io.IOException: write failed: EPIPE (Broken pipe) 

以上操作相当于我们在代码中执行控制台shell命令,需要手机已经root

上面代码中变量device为选中的ttySn文件,以上代码是对其权限的修改相当于我们直接在控制台执行以下命令

结果是ok的,但是通过我上面列出的官方的demo会出现异常,

请问有没有哥们在使用android-SerialPort-api这个demo的时候有解决过相关问题

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/245518
推荐阅读
相关标签
  

闽ICP备14008679号