java.io.IOException: write failed: EPIPE (Broken pipe)

cwt8805 2015-04-15 12:56:38
开发板上有个三色灯,想通过app控制。理论上往/sys/class/leds/red/brightness文件中写入相应的值就可以。事实上通过adb连接后在终端里面可以通过命令echo 123 > /sys/class/leds/red/brightness写入。但是问题是通过如下代码却不能成功:

Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
os.writeBytes("echo 123 > /sys/class/leds/red/brightness\n"); //java.io.IOException: write failed: EPIPE (Broken pipe)
os.flush();
os.writeBytes("exit\n");
os.flush();

代码在注释处抛出异常。什么情况,求解答!
...全文
8114 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝天居士 2017-01-06
  • 打赏
  • 举报
回复
已经将/sys, /sys/class,/sys/class/gpio改为了777, /system/xbin/su 改为了06755 还是会出现EPipe问题。不知楼主所说的权限要怎样解决?
kj654 2016-11-03
  • 打赏
  • 举报
回复
楼主解决了吗?同样的问题
hellomyshadow 2016-10-21
  • 打赏
  • 举报
回复
引用 4 楼 leilei3087961 的回复:
process = Runtime.getRuntime().exec("su"); 没有root权限的将su 改成sh 执行一下 process = Runtime.getRuntime().exec("sh");
多谢,这种方式可以设置修改系统时间
夜之莺 2016-05-09
  • 打赏
  • 举报
回复
我报这个错是因为手机没有root的原因,大家参考下。
SDYYY_FAN 2016-03-28
  • 打赏
  • 举报
回复
引用 3 楼 cwt8805 的回复:
[quote=引用 1 楼 AA95200261 的回复:] 楼主,问题解决了吗?我也遇到同样的问题啊,求指导``````
其实就是权限不够,让写驱动改一下那个节点的权限。[/quote] 一定要写驱动改吗?直接对灯那个节点chmod 777 不行
leilei3087961 2015-06-10
  • 打赏
  • 举报
回复
process = Runtime.getRuntime().exec("su"); 没有root权限的将su 改成sh 执行一下 process = Runtime.getRuntime().exec("sh");
cwt8805 2015-04-24
  • 打赏
  • 举报
回复
引用 1 楼 AA95200261 的回复:
楼主,问题解决了吗?我也遇到同样的问题啊,求指导``````
其实就是权限不够,让写驱动改一下那个节点的权限。
@cement 2015-04-24
  • 打赏
  • 举报
回复
p.waitFor(); 可能是Process p = Runtime.getRuntime().exec("su");尚未执行完导致的;加上这句试试?
武安君Symphony 2015-04-23
  • 打赏
  • 举报
回复
楼主,问题解决了吗?我也遇到同样的问题啊,求指导``````

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧