最近公司在做一款带DVD的android设备,DVD是linux系统。android设备要通过串口实现对DVD的控制。控制方式很简单,只需android写命令到串口就行了,这样就涉及到了android的串口编程。
我做的是android4.2系统的串口编程,经一个多星期的摸索,找到了两种串口的编程方法。
要实现对串口的打开首先要修改串口的权限,在init.rc里面添加修改权限语句:chmod 0777 /dev/ttyS0 。串口节点依照情况而定,我的串口是/dev/ttyS0。
方法一:
通过android的API进行编程。android4.2的SDK中已经集成了对串口的JNI和一些串口的服务接口,可以在framework中找到。里面主要封装了两个类:
android.hardware.SerialManager
android.hardware.SerialPort
通过上面两个类可以实现对串口的打开,和读写操作。具体实现可以参考android SDK中/frameworks/base/tests/SerialChat下的demo代码,我已经上传到网盘:http://pan.baidu.com/s/1qWNsRTU。
注意要在代码的AndroidManifest.xml中添加android:sharedUserId="android.uid.system",然后将编译生成的apk重新进行系统签名。并将apk安装到system/app目录下。这个代码需要修改一下否则会出现闪退,并在log中提示权限问题:android.permission.SERIAL