九鼎创展论坛

标题: 关于在Android Studio下通过程序控制GPIO的问题 [打印本页]

作者: phmatthaus    时间: 2017-1-6 18:42
标题: 关于在Android Studio下通过程序控制GPIO的问题
x项目中需要通过Android SDK应用程序控制GPIO。
经过前几天的尝试,在终端下已经可以通过以下命令控制GPIO了:
echo 89 > /sys/class/gpio/export (导出GPIOC25引脚)
echo out > /sys/class/gpio/gpio89/direction (GPIOC25脚设置为输出)
echo 1 > /sys/class/gpio/gpio89/value (GPIOC25脚置高)

经过测试,都是正常的。

但是通过Android SDK程序来控制:
process = Runtime.getRuntime().exec("su");
process.waitFor();
dos = new DataOutputStream(process.getOutputStream());
dos.writeBytes("echo 89 > /sys/class/gpio/export");
确总是抛异常。开始是提示无法获得超级权限,这一步已通过chmod 06755 /system/xbin/su解决。而后运行到dos.writeBytes()时又出现java.io.IOException: write failed: EPIPE (Broken pipe)错误。不知是否you人遇到过此问题。


作者: hhy    时间: 2017-2-18 10:22
你在 /sys/class/gpio这个目录下su之后再运行你那个程序试下
作者: lxz    时间: 2017-2-18 12:10
EPIPE 这个的产生还是是权限问题,dos.writeBytes("echo 89 > /sys/class/gpio/export");,再次su下,在调用export




欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2