作者:mobiledu2502906891 | 来源:互联网 | 2023-09-02 16:53
请问大家有没有写过AndRoid串口通信程序,给贴点代码,多谢了。
44 个解决方案
android有串口吗?现在手机都不用串口了吧?都是usb,
你是在用gsm modern 吗?
用jni可以实现串口的通信,但是我只能实现写串口,但是不能读串口哟,真的是烦。
这里http://code.google.com/p/android-serialport-api/有个可读写串口的API。
我下下来在模拟器上试了一下,一直出现这样的错误:“you do not hava read/write permission to the serial port”.谁知道什么原因吗?为啥没权限,代码里面已经有: "chmod 666 " + device.getAbsolutePath() + "\n"这句了。
这里http://code.google.com/p/android-serialport-api/有个可读写串口的API。
我下下来在模拟器上试了一下,一直出现这样的错误:“you do not hava read/write permission to the serial port”.谁知道什么原因吗?为啥没权限,代码里面已经有: "chmod 666 " + device.getAbsolutePath() + "\n"这句了。
To zcpangzi:
请问您在哪修改呀,我是修改了这句代码:
String cmd = "chmod 777 " + device.getAbsolutePath() + "\n"
+ "exit\n";
依然是没有读写权限,难道是模拟器上不支持?
权限问题一般是AndroidManifest.xml下面配置, 估计要允许修改硬件权限之类的,先查查吧
在 cmd 下 输入 adb shell
进入 terminal
chmod 777 /dev/ttyS0 就可以了。
to elia2008
大侠,我只能下载它的apk文件,所以没有办法修改
String cmd = "chmod 777 " + device.getAbsolutePath() + "\n"+ "exit\n";
请问你是如何把它的整个文件下下来的额。
谢谢!
还有,pc机上的com1口,在android模拟器中对应哪个?
android支持USB转串的吗?如果支持,驱动到那里下
我也在烦这个没有权限的问题:有两个方安案。
1、是adb -s [***] shell chmod 777 /dev/ttys0
2、修改init.rc 这个文件。。。。。希有人能把这个文件修改的方法贴出来。帮大家解决这个问题。
回复6楼:
1·要重新编APK文件
工程copy到NDK的samples中, 修改jni下的SerialPort.c文件
其中一行改为open(path_utf,O_RDWR | O_SYNC); 去掉中间选项
重新编译生成 ***.apk文件, 装载就行啦!
2·要更改权限
在根目录下init.rc文件的最后添加命令,修改serail_uart0 读写权限。保存,重启reboot。
刚刚搞定,希望对大家有帮助。
我按楼上的方法修改了fd = open(path_utf, O_RDWR | O_SYNC);但是仍然fd返回-1.
回复26楼:
请问你的第一点有什么作用呢?
第二点你是如何通过修改init.rc来修改权限了,在实体机上这个只读文件很困难。
请问你能不能专门说明下
这个可以NDK ;就是对LINUX下串口编程加了一个JAVA的封装
比如我的android应用通过NDK+JNI方式去给串口发AT指令
为什么 byte[] buffer = new byte[64];
if (mInputStream == null)
return;
// InputStreamReader ipsr = new InputStreamReader(mInputStream);
// BufferedReader br = new BufferedReader(ipsr);
// String[] str = new String[10];
// int i = 0;
// while (i < 10){
// Log.e("port_TAG", "-->"+i);
// str[i] = br.readLine();
// i++;
// if (i == 10)
// System.out.println("Enough now");
// }
// Log.e("port_TAG", "-->"+str.toString());
// Log.e("port_TAG", "--------------------");
size = mInputStream.read(buffer);
Log.e("port_TAG", "SIZE:" + size);
执行到mInputStream.read(buffer)就不继续往下执行了呢?
我也在做这个东西,大概是这样吧,在模拟器中su -root
然后chomd -777 ttys2
在模拟器中就可以对ttys2进行读写了,但是现在遇到问题就是如何与模拟器的串口进行通信呢?
看来都碰见读不出数据的问题了。谁有解呀,麻烦说说吧
本人重新编译生成 ***.apk文件, 安装完成后,第一个button “SetUp” 配置完串口(ttyS2,57600)。
再点第二个button “Console” 就出现异常,程序挂了。
求高手指点
我也遇到类似地问题。但我是在模拟器上可以实现收发功能,但是在实体机上,就实现不了了。求大神解答
不知道40楼的你实现了吗?,在android模拟器中的???,能把源码发给我看看吗?邮箱maoxiangxing@126.com
我也在弄这个,一点思路都不会。网上找了资料什么用c语言什么的。有没有高手加我QQ帮指点下啊…………820825987求师傅
現在可以利用一顆IC----FT311D來實現免驅串口通信, 是利用安卓的Android accessory mode 實現, API已寫好, 呼叫就可使用,Q2593281509 james@passiontech.net