一些Android
手机是有串口可以提供打开,读取一些底层的数据。如果手机本身没有串口的话,那么打开估计会报错。串口读取数据肯定是使用jni调用c代码来完成的。有一个开源的串口库android-serialport-api。其主页在这里http://code.google.com/p/android-serialport-api/ ,这里可以下到APK及对源码。谷歌的代码库,无奈国内无法下载https://github.com/cepr/android-serialport-api ,GITHUB的地址,这个可以下载 但是下载源码之后发现源码不能直接使用,而且源码结构较为复杂。
在这里我是使用服务来读取串口数据,都出来数据直接写入到txt文件里面。
串口读写的库的地址:https://code.google.com/p/android-serialport-api/
github地址:https://github.com/cepr/android-serialport-api
本篇博客的下载地址:http://download.csdn.net/detail/qq_16064871/9731908
1,注意事项
选择串口时候,需要加上dev/。如果我选择ttyMT2,路径就是dev/ttyMT2。波特率就是整型38400,或者其他。

打开串口以及读取数据的串口类调用加载so库一定放在这个包下面android_serialport_api。不能放在其他包的下面。
SerialPortDevice.class
-
- package android_serialport_api;
-
- import java.io.FileDescriptor;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.io.OutputStream;
-
- import android.util.Log;
-
- public class SerialPortDevice{
-
- private FileDescriptor mFd;
- private InputStream mInputStream;
- private OutputStream mOutputStream;
-
- private String path;
- private int baudrate;
- int flags=0;
-
- public SerialPortDevice(String path, int baudrate, int flags) {
- mFd = new FileDescriptor();
- this.path=path;
- this.baudrate=baudrate;
- this.flags=flags;
- }
-
-
- public boolean connect() {
- mFd = open(path, baudrate, 0);
- if (mFd == null) {
- return false;
- }
- else
- {
- return true;
- }
- }
-
-
- public InputStream getInputStream() {
-
- return new FileInputStream(mFd);
- }
-
-