Github传送门:OkUSB

OkUSB

一个简洁的Android串口通信框架。

功能简介

  • 支持设置波特率
  • 支持设置数据位
  • 支持设置停止位
  • 支持设置校验位
  • 支持DTS和RTS
  • 支持串口连接状态监听

用法简介

Gradle

    allprojects {        repositories {            ...            maven { url 'https://jitpack.io' }        }    }    dependencies {            compile 'com.github.zhouzhuo810:OkUSB:1.0.0'    }

具体用法

1.在AndroidManifest.xml中添加如下特性:

    

在需要连接串口的Activity中添加:

                    

2.在res文件夹创建xml文件夹,新建device_filter.xml

<?xml version="1.0" encoding="utf-8"?>        

3.前面都是准备工作,这里才真正使用。

    //初始化    usb = new USB.USBBuilder(this)            .setBaudRate(115200)  //波特率            .setDataBits(8)       //数据位            .setStopBits(UsbSerialPort.STOPBITS_1) //停止位            .setParity(UsbSerialPort.PARITY_NONE)  //校验位            .setMaxReadBytes(20)   //接受数据最大长度            .setReadDuration(500)  //读数据间隔时间            .setDTR(false)    //DTR enable            .setRTS(false)    //RTS enable            .build();    //实现监听连接状态和数据收发。    usb.setOnUsbChangeListener(new USB.OnUsbChangeListener() {        @Override        public void onUsbConnect() {            Toast.makeText(MainActivity.this, "conencted", Toast.LENGTH_SHORT).show();        }        @Override        public void onUsbDisconnect() {            Toast.makeText(MainActivity.this, "disconencted", Toast.LENGTH_SHORT).show();        }        @Override        public void onDataReceive(byte[] data) {            tvResult.setText(new String(data, Charset.forName("GB2312")));        }        @Override        public void onUsbConnectFailed() {            Toast.makeText(MainActivity.this, "connect fail", Toast.LENGTH_SHORT).show();        }        @Override        public void onPermissionGranted() {            Toast.makeText(MainActivity.this, "permission ok", Toast.LENGTH_SHORT).show();        }        @Override        public void onPermissionRefused() {            Toast.makeText(MainActivity.this, "permission fail", Toast.LENGTH_SHORT).show();        }        @Override        public void onDriverNotSupport() {            Toast.makeText(MainActivity.this, "no driver", Toast.LENGTH_SHORT).show();        }        @Override        public void onWriteDataFailed(String error) {            Toast.makeText(MainActivity.this, "write fail" + error, Toast.LENGTH_SHORT).show();        }        @Override        public void onWriteSuccess(int num) {            Toast.makeText(MainActivity.this, "write ok " + num, Toast.LENGTH_SHORT).show();        }    });

4.发送数据

       usb.writeData(byte[], 500);

5.如果是Activity,可以在onDestroy中调用如下代码关闭串口。

        if (usb != null) {            usb.destroy();        }

License

Copyright 2017 zhouzhuo810Licensed 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.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.

更多相关文章

  1. Android(安卓)Jetpack 组件之 ViewModel(Kotlin)
  2. android支持多分辨率屏幕
  3. Android数据库开源框架GreenDao分析
  4. 安卓开发之 在应用中使用数据库
  5. ContentProvider拾遗
  6. 探究Android(安卓)SQLite3多线程
  7. 详解Android四种存储方式
  8. Android(安卓)两种串口实现方法总结
  9. Android(安卓)SQLite数据存储

随机推荐

  1. Android二维码识别研究
  2. Mac下修改Android(安卓)Studio的默认JDK
  3. Android(安卓)简单动画中SurfaceView 的
  4. Android中带分割线的九宫格
  5. android的详解
  6. Android中的Context理解
  7. Android搜索框自动提示文本框——(单一提
  8. Android: Android Property System
  9. android - 确认订单页面【仿】京东App
  10. android gif播放