Android 轻松连接 Usb Device —— UsbConnector
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相关推荐
- 【经验】为什么Android手机连接USB后查看手机内部图片有些有缩略图,有些显示图标?
[经验]为什么Android手机连接USB后查看手机内部图片有些有缩略图,有些显示图标? 一.图片内嵌缩略图原理 这是什么原理呢?因为现在JPEG的文件采用了压缩的方式,其过程比较复杂.为了能让大家快 ...
- Android 模拟器连接 USB 设备
Android Genymotion 连接 USB 设备 一.需要的软件 Genymotion. Oracle VirtualBox.VirtualBox 扩展包(连接 USB 需要) 二.详细步骤 ...
- USB device USB controller USB passthrough
近期往 openstack 里倒腾 USB passthrough[1],遂把 USB 知识做较为全面的整理,以供分享. USB device 什么是 USB device, 上图机智的小萌狗就是 U ...
- Android 连接USB设备(主机模式)
Android 连接USB设备(主机模式) Android 连接USB设备(配件模式) 两种模式(主机.配件) 首先,要了解Android 连接USB设备主要通过两种模式, USB 配件模式. USB ...
- Android 连接USB默认选中MTP模式
Android 连接USB默认选中MTP模式 需求分析 Android系统默认连接USB会显示:正在通过USB为此设备充电,并且无法在电脑查看存储内容.需要实现的效果:Android 连接USB默认选 ...
- Android设备与USB设备的连接通讯
关于Android与USB设备的连接,所能搜索到的资料特别的少,但恰恰接到了一个这样的需求,使用android平板通过USB与一个外接设备进行通讯,这个设备是一个压力感应器,在压力发生变化时可以测到相 ...
- Android 平板通过USB口连接小票打印机
1.首先注册一个广播:用户三种操作会导致系统发广播,插或者拔USB设备,还有就是在USB授权框点击是或者否 private void initReceiver() {//授权对话框点击操作之后会发出系 ...
- Vmware提示:host usb device connections disabled-(vmware 主机已禁用 usb 设备连接)
Vmware提示:host usb device connections disabled-(vmware 主机已禁用 usb 设备连接) VMware Workstation,提示提示Host US ...
- Appium 移动端自动化 - Android SDK连接安卓手机,adb连接一加8手机USB调试实例演示,连接一加8手机不显示USB调试选项问题排查
Android SDK 连接安卓手机过程演示 第一章:一加8手机连接过程 ① 启用开发者模式 ③ 开发者选项启用 USB 调试 ③ 手机连接 USB 调试 ④ 手机连接不显示 USB 调试选项问题排查 ...
最新文章
- Java项目:图书管理系统(java+SSM+jsp+mysql+maven)
- python and or 优先级
- jmeter定时器的使用_jmeter压测学习30定时器之固定定时器(sleep等待时间)
- 办公技巧:分享12个实用的word小技巧,欢迎收藏!
- leetcode1083. 销售分析 II(SQL)
- php实现注册登陆验证
- Kali Linux之软件安装、卸载、更新和修改更新源
- 万网空间的数据库配置方法
- linux脚本怎么获取参数,在Bash shell脚本编程中,如何正确无误获取到“脚本选项参数”和“脚本参数”呢?...
- “苹果正在走下神坛” | 畅言
- 【MATLAB】基本绘图 ( 绘图基本步骤 | plot 函数 | 多曲线绘制 | hold on / off )
- jvisualVM调优案例
- 网站静态页面克隆 | 学习笔记
- 基于php的酒店管理系统答辩ppt,基于PHP的连锁酒店管理系统毕业设计论文+任务书+开题报告+中期报告+答辩PPT+项目源码及数据库...
- 巨量创意signature
- PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection阅读
- 宝塔自动备份网站到FTP空间
- 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false
- CV学习:李宏毅2021机器学习(2)
- 【安装PyTorch报错】InvalidArchiveError(‘Error with archive D:\\anaconda\\pkgs\\pytorch-1.2.0-py3.6····
热门文章
- cmake:foreach、endforeach
- 职称评审被淘汰的诸多原因,可以赶紧为2022年评职称做准备
- 基于java爱宠医院管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
- remote-incorrect-username-or-password-access-token
- Java异常处理——日志打印
- 【Java语言】请输入任意一个三位数,输出个位 , 十位 , 和百位,输入:123,输出:3,2,1
- 透彻解析信号地与电源地的关系
- 计算机比赛证书p图,雅礼中学计算机协会第二届“P图”大赛报名正式启动
- 硬盘为raw格式后的修复
- tcpip Socket编程入门