android 串口编程
16lz
2021-12-04
import java.io.File;import java.io.FileDescriptor;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import android.util.Log;public class SerialPort { private static final String TAG = "SerialProt"; private FileDescriptor mFd = null; //--文件描述符 private FileInputStream fis = null; //--串口输入流 private FileOutputStream fos = null; //--串口输出流 public SerialPort(File device, int baudrate, int flags) throws InterruptedException { /****** 判断文件是否可读可写 *******/ if (!device.canRead() || !device.canRead()) { try { Process su; su = Runtime.getRuntime().exec("/System/xbin/su"); String cmd = "chmod 777" + device.getAbsolutePath() + "\n" + "exit\n"; su.getOutputStream().write(cmd.getBytes()); //--更改权限可读可写 if (su.waitFor() != 0 || !device.canRead() || !device.canWrite()) { // --更改权限后在判断,如果不能读写则抛出新异常 throw new SecurityException(); } } catch (IOException e) { e.printStackTrace(); throw new SecurityException(); } } mFd = open(device.getAbsolutePath(), baudrate, flags); if (mFd == null) { Log.d(TAG, "native open returns null"); } fis = new FileInputStream(mFd); fos = new FileOutputStream(mFd); } public FileInputStream getFis() { return fis; } public FileOutputStream getFos() { return fos; } // --JNI private native static FileDescriptor open(String path, int baudrate, int flags); //--打开串口本地方法 public native void close(); //--关闭串口本地方法 static { System.loadLibrary("serial_port"); }}
更多相关文章
- Android之qq盗号
- 数据存储之——Android文件存储系统及文件系统(Android(安卓)Q)
- Android基础笔记(二)-数据存储和界面展现
- Android(安卓)M 新的运行时权限开发者需要知道的一切
- Android串口通信:抱歉,学会它真的可以为所欲为
- Android(安卓)M 新的运行时权限开发者需要知道的一切
- Android(安卓)M 新的运行时权限开发者需要知道的一切
- Android组件学习笔记(连接互联网)
- android获取短信所有内容