最近在做一个收银机项目,里面涉及到串口通信的知识,如发串口命令打开钱箱、打印小票等等,经过一段时间的摸索,终于搞定了。这个demo,希望给用AS开发串口的小伙伴点启发,少走些弯路。
界面:
具体流程
1.把android_serialport_api的SerialPort、SerialPortFinder两个类导到项目中,Make Project,编译成对应的class文件。
2.然后根据生成的class文件,利用javah生成对应的.h文件。
(1)Terminal 命令cd app/main/src切换到main目录下 。
(2)命令javah -d jni -classpath C:\Disk_E\AndroidStudio\android-sdk\platforms\android.jar;..\..\build\intermediates\classes\debug com.example.shen.serialport.android_serialport_api.SerialPort(根据自己SDK路径、包名),成功后main目录下多了个jni文件夹,里面有生成好的头文件com_example_shen_serialport_android_serialport_api_SerialPort.h,so长,我把它重命名为SerialPort.h。
3.把android_serialport_api/jni里的SerialPort.c拷到jni文件夹里,根据SerialPort.h把SerialPort.c里open、close方法名替换掉。
4.在jni文件夹里新建一个空的Util.c文件,要不编译有问题,说是AS的一个bug。
5.在local.properties文件中设置ndk的路径
我的是:
sdk.dir=C\:\\Disk_E\\AndroidStudio\\android-sdk
ndk.dir=C\:\\Disk_E\\AndroidStudio\\android-ndk
(ndk跟sdk一样要去网上下载)
6.在app的build.gradle中设置库文件名(生成so的文件名),找到defaultConfig,在里面添加如下内容
ndk{
moduleName"serial_port"
}
7.下面就Hello Serial Port World了。
8.demo下载地址http://download.csdn.net/download/shenyuanqing/9176281