最近一个项目是android和MCU之间的串口指令数据通信,捣鼓了很久,也找了很多网上的资料。最后将实现的总结记录下来。
使用的是GitHub中的一个项目,下载地址:https://github.com/cepr/android-serialport-api
下载解压后会出现两个文件夹,我们使用的是这个,如图:
复制整个文件夹到项目的java目录下,不要变更名字,名字是跟里面的东西相关的,变更后会报错,如图:
再将android_serialport_api下的除了drawable下的其他资源文件复制粘贴到项目中对应的文件下,如图:
再将jni和lib下的文件也都复制到项目中,如图:
接下来配置model的build.gradle
在android下的defaultConfig 添加ndk,如图:
ndk{
abiFilters "armeabi-v7a"
}
ndk{
moduleName "serial_port"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
ndk{
ldLibs "log"
}
在android下添加,引用jni:
sourceSets{ main{ jni.srcDirs = [] } }
注:targetSdkVersion版本要22以下,22以上会报错奔溃
至此,配置完成。接下来就是打开和使用串口通信了
串口使用到的数据定义:
/**
* 标记当前串口状态(true:打开,false:关闭)
**/
public static boolean isFlagSerial = false;
public static SerialPort serialPort = null;
public static InputStream inputStream = null;
publi