• 大小: 178KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: Java
  • 标签: android  serialpo  

资源简介

用新版的NDK编译的libserial_port.so新版的动态依赖库,适用于android6.0以上的串口通信开发

资源截图

代码片段和文件信息

/*
 * Copyright 2009 Cedric Priscal
 * 
 * Licensed under the Apache License Version 2.0 (the “License“);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing software
 * distributed under the License is distributed on an “AS IS“ BASIS
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */

package android_serialport_api;

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 int baudrate int flags) throws SecurityException IOException {

/* Check access permission */
if (!device.canRead() || !device.canWrite()) {
try {
/* Missing read/write permission trying to chmod the file */
Process su;
su = Runtime.getRuntime().exec(“/system/bin/su“);
String cmd = “chmod 666 “ + device.getAbsolutePath() + “\n“
+ “exit\n“;
su.getOutputStream().write(cmd.getBytes());
if ((su.waitFor() != 0) || !device.canRead()
|| !device.canWrite()) {
throw new SecurityException();
}
} catch (Exception e) {
e.printStackTrace();
throw new SecurityException();
}
}

mFd = open(device.getAbsolutePath() baudrate flags);
if (mFd == null) {
Log.e(TAG “native open returns null“);
throw new IOException();
}
mFileInputStream = new FileInputStream(mFd);
mFileOutputStream = new FileOutputStream(mFd);
}

// Getters and setters
public InputStream getInputStream() {
return mFileInputStream;
}

public OutputStream getOutputStream() {
return mFileOutputStream;
}

// JNI
private native static FileDescriptor open(String path int baudrate int flags);
public native void close();
static {
System.loadLibrary(“serial_port“);
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-09-08 15:53  动态依赖库\
     目录           0  2019-09-08 15:53  动态依赖库\android_serialport_api\
     文件        2409  2017-08-30 10:22  动态依赖库\android_serialport_api\SerialPort.java
     文件        3438  2012-10-03 03:15  动态依赖库\android_serialport_api\SerialPortFinder.java
     目录           0  2019-09-08 15:53  动态依赖库\jni\
     文件         809  2019-09-06 19:46  动态依赖库\jni\Android.mk
     文件          25  2019-09-08 11:11  动态依赖库\jni\Application.mk
     文件          90  2012-10-03 03:15  动态依赖库\jni\gen_SerialPort_h.sh
     文件        4589  2012-10-03 03:15  动态依赖库\jni\SerialPort.c
     文件         745  2012-10-03 03:15  动态依赖库\jni\SerialPort.h
     目录           0  2019-09-08 15:52  动态依赖库\libs\
     目录           0  2019-09-08 15:52  动态依赖库\libs\armeabi\
     文件      123292  2019-09-08 10:42  动态依赖库\libs\armeabi\libserial_port.so
     目录           0  2019-09-08 15:52  动态依赖库\libs\armeabi_v7a\
     文件      123292  2019-09-08 10:42  动态依赖库\libs\armeabi_v7a\libserial_port.so
     目录           0  2019-09-08 15:52  动态依赖库\libs\x86\
     文件      123292  2019-09-08 10:42  动态依赖库\libs\x86\libserial_port.so
     目录           0  2019-09-08 15:52  动态依赖库\libs\x86_64\
     文件      123292  2019-09-08 10:42  动态依赖库\libs\x86_64\libserial_port.so

评论

共有 条评论