UsbConnector Android usb device 连接库

  • 一.基本配置
    • 1.导入 USBConnector 库
      • Step 1. Add the JitPack repository to your build file .
      • Step 2. Add the dependency
    • 2.创建 Usb Device 过滤文件
  • 二.初始化连接器 / 释放连接器
  • 三.对 USB device 进行操作
    • 初始化 UsbOperate
    • 监听 usb device 的状态
      • 确定设备的基本状态:
      • 确定是否具有 usb 连接权限
    • 连接 USB device
    • 其他操作

先上文档 : Android Usb 官方文档

Git 库地址: UsbConnector

简介:由于安卓连接 USB device 颇为繁琐,因此本着不重复造轮子的原则写了一个 UsbConnector 库。运用该库可省略 USB 状态监听及 USB 连接权限的处理,三步即可轻松实现安卓连接 USB device ,以及各种状态的监听的功能!

一.基本配置

1.导入 USBConnector 库

Step 1. Add the JitPack repository to your build file .

Add it in your root build.gradle at the end of repositories:

allprojects {repositories {...maven { url 'https://jitpack.io' }}}

Step 2. Add the dependency

dependencies {implementation 'com.github.Ysj001:UsbConnector:x.x.x'}

2.创建 Usb Device 过滤文件

  • 在 res 目录下建立一个 xml 文件夹,并在其中建立一个 device_filter.xml 文件内容如下所示
  • usb-device 可设置多个,用于过滤多个连接的设备
  • product-id 和 vendor-id 为必须设置的参数,用于后面记住 usb 设备的连接权限
  • interface-id 和 interface-subclass 则用于自动过滤用于打开连接的设备的连接接口(UsbInterface),若设置正确则库会自动初始化 UsbDeviceConnection
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"><usb-device product-id="65535" vendor-id="2663" interface-id="3" interface-subclass="0" /><usb-device product-id="111111" vendor-id="1212" interface-id="13" interface-subclass="10" /><usb-device product-id="222" vendor-id="1212" interface-id="31" interface-subclass="01" />
</resources>

二.初始化连接器 / 释放连接器

  • 在任意位置都可调用 UsbConnector.init(context) 来对该库进行初始化,如下为在 Activity 的 onCreate() 函数中初始化

  • 在任意位置都可调用 UsbConnector.release(context) 来释放该库,如下为在 Activity 的 onDestroy() 函数中释放

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);UsbConnector.init(this);}... ... @Overrideprotected void onDestroy() {super.onDestroy();UsbConnector.release(this);}

以上步骤完成后

三.对 USB device 进行操作

初始化 UsbOperate

  • 在对 usb device 进行操作前要先初始化 UsbOperate
IUsbOperate mOperate = new UsbOperate();

监听 usb device 的状态

确定设备的基本状态:

  • 是否插入
  • 插入的设备是否是过滤文件中的设备
  • 是否已经连接上

以上状态均可用以下方法监听:

mOperate.setOnDeviceStateListener(new OnDeviceStateListener() {@Overridepublic void onDeviceState(String action) {}});

确定是否具有 usb 连接权限

可在以下方法中监听:

mOperate.setOnDevicePermissionListener(new OnDevicePermissionListener() {@Overridepublic void onDevicePermission(boolean hasPermission) {}});

连接 USB device

  • 在完成上述几个步骤后只需要如下步骤就可以连接 usb device 啦
mOperate.connected(this);

其他操作

  • 若想获取一下内容均可在 USBHolder. getInstance() 中
    // 用于过滤设备的 filtersList<UsbFilter> filters = new ArrayList<>();// usb 的广播接收器USBReceiver usbReceiver;// usb 设备UsbDevice usbDevice;// 该设备的连接接口UsbInterface usbInterface;// 设备的连接UsbDeviceConnection usbDeviceConnection;// 输入端点UsbEndpoint endpointIn;// 输出端点UsbEndpoint endpointOut;

Android 轻松连接 Usb Device —— UsbConnector相关推荐

  1. 【经验】为什么Android手机连接USB后查看手机内部图片有些有缩略图,有些显示图标?

    [经验]为什么Android手机连接USB后查看手机内部图片有些有缩略图,有些显示图标? 一.图片内嵌缩略图原理 这是什么原理呢?因为现在JPEG的文件采用了压缩的方式,其过程比较复杂.为了能让大家快 ...

  2. Android 模拟器连接 USB 设备

    Android Genymotion 连接 USB 设备 一.需要的软件 Genymotion. Oracle VirtualBox.VirtualBox 扩展包(连接 USB 需要) 二.详细步骤 ...

  3. USB device USB controller USB passthrough

    近期往 openstack 里倒腾 USB passthrough[1],遂把 USB 知识做较为全面的整理,以供分享. USB device 什么是 USB device, 上图机智的小萌狗就是 U ...

  4. Android 连接USB设备(主机模式)

    Android 连接USB设备(主机模式) Android 连接USB设备(配件模式) 两种模式(主机.配件) 首先,要了解Android 连接USB设备主要通过两种模式, USB 配件模式. USB ...

  5. Android 连接USB默认选中MTP模式

    Android 连接USB默认选中MTP模式 需求分析 Android系统默认连接USB会显示:正在通过USB为此设备充电,并且无法在电脑查看存储内容.需要实现的效果:Android 连接USB默认选 ...

  6. Android设备与USB设备的连接通讯

    关于Android与USB设备的连接,所能搜索到的资料特别的少,但恰恰接到了一个这样的需求,使用android平板通过USB与一个外接设备进行通讯,这个设备是一个压力感应器,在压力发生变化时可以测到相 ...

  7. Android 平板通过USB口连接小票打印机

    1.首先注册一个广播:用户三种操作会导致系统发广播,插或者拔USB设备,还有就是在USB授权框点击是或者否 private void initReceiver() {//授权对话框点击操作之后会发出系 ...

  8. Vmware提示:host usb device connections disabled-(vmware 主机已禁用 usb 设备连接)

    Vmware提示:host usb device connections disabled-(vmware 主机已禁用 usb 设备连接) VMware Workstation,提示提示Host US ...

  9. Appium 移动端自动化 - Android SDK连接安卓手机,adb连接一加8手机USB调试实例演示,连接一加8手机不显示USB调试选项问题排查

    Android SDK 连接安卓手机过程演示 第一章:一加8手机连接过程 ① 启用开发者模式 ③ 开发者选项启用 USB 调试 ③ 手机连接 USB 调试 ④ 手机连接不显示 USB 调试选项问题排查 ...

最新文章

  1. Java项目:图书管理系统(java+SSM+jsp+mysql+maven)
  2. python and or 优先级
  3. jmeter定时器的使用_jmeter压测学习30定时器之固定定时器(sleep等待时间)
  4. 办公技巧:分享12个实用的word小技巧,欢迎收藏!
  5. leetcode1083. 销售分析 II(SQL)
  6. php实现注册登陆验证
  7. Kali Linux之软件安装、卸载、更新和修改更新源
  8. 万网空间的数据库配置方法
  9. linux脚本怎么获取参数,在Bash shell脚本编程中,如何正确无误获取到“脚本选项参数”和“脚本参数”呢?...
  10. “苹果正在走下神坛” | 畅言
  11. 【MATLAB】基本绘图 ( 绘图基本步骤 | plot 函数 | 多曲线绘制 | hold on / off )
  12. jvisualVM调优案例
  13. 网站静态页面克隆 | 学习笔记
  14. 基于php的酒店管理系统答辩ppt,基于PHP的连锁酒店管理系统毕业设计论文+任务书+开题报告+中期报告+答辩PPT+项目源码及数据库...
  15. 巨量创意signature
  16. PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection阅读
  17. 宝塔自动备份网站到FTP空间
  18. 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false
  19. CV学习:李宏毅2021机器学习(2)
  20. 【安装PyTorch报错】InvalidArchiveError(‘Error with archive D:\\anaconda\\pkgs\\pytorch-1.2.0-py3.6····

热门文章

  1. cmake:foreach、endforeach
  2. 职称评审被淘汰的诸多原因,可以赶紧为2022年评职称做准备
  3. 基于java爱宠医院管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  4. remote-incorrect-username-or-password-access-token
  5. Java异常处理——日志打印
  6. 【Java语言】请输入任意一个三位数,输出个位 , 十位 , 和百位,输入:123,输出:3,2,1
  7. 透彻解析信号地与电源地的关系
  8. 计算机比赛证书p图,雅礼中学计算机协会第二届“P图”大赛报名正式启动
  9. 硬盘为raw格式后的修复
  10. tcpip Socket编程入门