公司最近正好有个关于Android串口通信的模块,所以我学习并总结了一下,Android串口通信要使用到JNI以及NDK的内容
串口开发需要Root权限
关于串口的操作不外乎几步:
1.打开串口(及配置串口);
2.读串口;
3.写串口;
4.关闭串口。
第一:JNI技术,它使得java中可以调用c语言写成的库。源码:点击下载源码。
下载完成后将jni以及jniLibs文件夹直接拉到java同级的目录下,如下:
然后在你的项目的java文件下创建一个包,包名为android_serialport_api。这里的包名对应的是jni中SerialPort.c文件中的方法名。
如果你不想将你的包名命名为"android_serialport_api"的话,则需要将SerialPort.c文件中对应的方法名也改掉。
创建好包后,接下来就是在该包下新建一个SerialPort类,在这个类中我们主要创建两个本地方法,分别为open,以及close,
运行时,Android会自动的调用jni中对应的方法,从而实现对指定串口的打开及关闭。
- package android.serialport;
- import java.io.File;
- import java.io.FileDescriptor;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import android.util.Log;
- public class SerialPort {
- private static final String TAG = "SerialPort";
- /*
- * Do not remove or rename the field mFd: it is used by native method close();
- */
- private FileDescriptor mFd;
- private FileInputStream mFileInputStream;
- private FileOutputStream mFileOutputStream;
- public SerialPort(File device,