我正在使用Olinuxino-A20(或Cubieboard-2,他们使用相同的Android图像)。我想写点/ dev / ttyS0。我正在使用用C编写的JNI方法。 在我的.cpp文件中,我被拒绝了。
fd = open(tty, O_RDWR);
....
f(fd < 0){
LOGE("Failed to open serial console!");
LOGE(strerror(errno));
return -1;
} else
LOGI("Serial port opened!");
所以这回复“许可被拒绝”。
在我的活动中,我尝试通过以下方式获取访问权限:
try {
Runtime.getRuntime().exec(
new String[] { "su", "-c", "chmod 777 /dev/ttyS*" });
Log.i("root", "Success chmod.");
} catch (IOException e) {
e.printStackTrace();
Log.e("root", "Fail to gain access");
}
仍然没有任何反应。 Android的版本是4.2.2,内核3.3。是的,这个设备是扎根的。我使用了与Olinuxino-A13(内核3.0的4.0.3)几乎相同的代码,并且这有效。
当我打开串口终端并手动输入命令: chmod 777 / dev / ttyS * 然后运行应用程序一切正常。
有人可以给我一些建议,为什么我的代码无效?