Android串口开发

来源:互联网 发布:otg功能软件下载 编辑:程序博客网 时间:2024/06/05 20:37

    最近公司有个新项目,android设备(android手机)连接RFID设备,通过android应用来操作RFID设备来实现一些功能。Android设备和RFID设备通过GPIO接口连接,实现这样的android应用开发对我这个对于android开发都不算入门的人来说,有点小难度。经过一两天的百度、尝试,还是顺利搞定了,顺便记录一下过程。

    android串口开发有个开源的项目:android-serialport-api。网上到处都有,下载后,在eclipse中引入此工程,自己研究一番。然后新建自己的android项目,新项目建好之后,从android-serialport-api项目中拷贝一些文件到自己的项目:

    1、拷贝android_serialport_api包到自己的项目中,这个包里有个文件:SerialPort.java和SerialPortFinder.java,值得注意的是android_serialport_api包的包名不能修改

    2、拷贝jni文件夹到自己的项目中,jni的概念就不说了,这个文件夹中有个文件gen_SerialPort_h.sh,里面定义了SerialPort的完整路径,要是“android_serialport_api”包改了其他的名字,程序会报错误“找不到本地方法”,如果要改这个包名,gen_SerialPort_h.sh文件也应该一起修改,并且需要重新编译。C程序就搞不懂了,所以,果断选择不动这两个文件夹。

    3、拷贝libs目录下的三个文件夹“armeabi”、“armeabi-v7a”、“x86”到自己的项目,这三个文件夹是为了适应不同的cpu芯片。

    然后就可以开发自己的应用了。android-serialport-api项目中的其他一些代码也是很有用的:

    1、android_serialport_api.sample.Application类,里面的方法getSerialPort()用来获取串口。这个方法可以自己修改,可以直接将串口文件节点名和波特率作为参数传给这个方法,也可以向原有的代码那样通过SharedPreferences获取到指定的串口文件和波特率,通过串口文件和波特率来创建一个串口对象;

    2、android_serialport_api.SerialPort类,抽象的串口类,其构造方法中首先修改了串口文件的读写权限(此段代码刚好作为android修改文件读写权限的事例代码),然后通过jni调用来打开串口。

    3、操作串口,实际就抽象为了对串口文件的读和写,具体的代码在android-serialport-api项目中SerialPortActivity类和Sending01010101Activity等类中可以找到,不在赘述。

0 0