千家信息网

Java怎么访问USB设备

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,本篇内容介绍了"Java怎么访问USB设备"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!编者注由于需
千家信息网最后更新 2025年02月05日Java怎么访问USB设备

本篇内容介绍了"Java怎么访问USB设备"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

编者注

由于需要对某usb设备获取的数值进行转发和广播,则选择最熟悉的java作为切入语言解决。历经辛苦,测试成功。

JSR-80

通过查看Java的标准协会在制定标准的时候是具有JSR-80的制定的。API为javax.usb。但是通过当前(JDK 8作为默认),无论是J2ME、J2SE、J2EE都没有对JSR进行实现。

JSR80

API

javax.usb API

Simple

javax-usb-example

问题

通过阅读,能够得知没有Windows实现,或者Windows实现有问题,则需要其他方式。我们通过usb4java库的实现,在通过usb4java-javax的连接实现javax.usb

usb4java

usb4java 官网

usb4java - quick start guide
通过快速开始了解到usb4java的两种api,底层API是针对libusb的,高层API是针对javax.usb
High-level (javax-usb) API
注意:必须添加javax.usb.properties

实施

开发环境为Windows

引用库

以下是Gradle的链式引用

   compile group: 'javax.usb', name: 'usb-api', version: '1.0.2'        compile group: 'org.usb4java', name: 'usb4java', version: '1.2.0'        compile group: 'org.usb4java', name: 'usb4java-javax', version: '1.2.0'

配置文件

在Java项目下添加配置文件,路径为src\resources\javax.usb.properties

# src\resources\javax.usb.propertiesjavax.usb.services = org.usb4java.javax.Services

测试代码

package org.acifve.previz.broadcastserver.hid;import org.apache.commons.lang3.builder.ReflectionToStringBuilder;import org.junit.Test;import javax.usb.*;import java.util.ArrayList;import java.util.List;import static org.junit.Assert.*;public class UsbHIDSenderTest {    @Test    public void getUsbs() throws UsbException {        UsbServices usbServices = UsbHostManager.getUsbServices();        UsbHub usbHub = usbServices.getRootUsbHub();        List usbDevices = getAllUsbDevices(usbHub);        for (UsbDevice usbDevice : usbDevices)        {            System.out.println(ReflectionToStringBuilder.toString(usbDevice));        }    }    public static List getAllUsbDevices(UsbDevice usbDevice)    {        List list = new ArrayList();        list.add(usbDevice);                /* this is just normal recursion.  Nothing special. */        if (usbDevice.isUsbHub()) {            List devices = ((UsbHub)usbDevice).getAttachedUsbDevices();            for (int i=0; i

输出

org.usb4java.javax.RootHub@7dc36524[configurations=[org.usb4java.javax.RootHubConfiguration@3cb5cdba],descriptor=Device Descriptor:  bLength                 18  bDescriptorType          1  bcdUSB                1.01  bDeviceClass             9 Hub  bDeviceSubClass          0  bDeviceProtocol          0  bMaxPacketSize0          8  idVendor            0xffff  idProduct           0xffff  bcdDevice             0.00  iManufacturer            1  iProduct                 2  iSerial                  3  bNumConfigurations       1,listeners=org.usb4java.javax.DeviceListenerList@d041cf,rootPorts=org.usb4java.javax.Ports@129a8472]org.usb4java.javax.NonHub@1b0375b3[manager=org.usb4java.javax.DeviceManager@2752f6e2,id=Bus 001 Device 005: ID 138a:0090,parentId=Bus 001 Device 001: ID 8086:9d2f,speed=2,configurations=[USB configuration 01],configMapping={1=USB configuration 01},listeners=org.usb4java.javax.DeviceListenerList@1cd072a9,handle=,activeConfigurationNumber=1,claimedInterfaceNumbers=[],port=org.usb4java.javax.Port@7c75222b,queue=org.usb4java.javax.ControlIrpQueue@4c203ea1,detachedKernelDriver=false]org.usb4java.javax.NonHub@27f674d[manager=org.usb4java.javax.DeviceManager@2752f6e2,id=Bus 001 Device 002: ID 17ef:6039,parentId=Bus 001 Device 001: ID 8086:9d2f,speed=2,configurations=[USB configuration 01],configMapping={1=USB configuration 01},listeners=org.usb4java.javax.DeviceListenerList@48140564,handle=,activeConfigurationNumber=1,claimedInterfaceNumbers=[],port=org.usb4java.javax.Port@58ceff1,queue=org.usb4java.javax.ControlIrpQueue@7c30a502,detachedKernelDriver=false]org.usb4java.javax.NonHub@49e4cb85[manager=org.usb4java.javax.DeviceManager@2752f6e2,id=Bus 001 Device 004: ID 04f2:b5c1,parentId=Bus 001 Device 001: ID 8086:9d2f,speed=3,configurations=[USB configuration 01],configMapping={1=USB configuration 01},listeners=org.usb4java.javax.DeviceListenerList@43a25848,handle=,activeConfigurationNumber=1,claimedInterfaceNumbers=[],port=org.usb4java.javax.Port@3ac3fd8b,queue=org.usb4java.javax.ControlIrpQueue@5594a1b5,detachedKernelDriver=false]org.usb4java.javax.NonHub@6a5fc7f7[manager=org.usb4java.javax.DeviceManager@2752f6e2,id=Bus 001 Device 003: ID 8087:0a2b,parentId=Bus 001 Device 001: ID 8086:9d2f,speed=2,configurations=[USB configuration 01],configMapping={1=USB configuration 01},listeners=org.usb4java.javax.DeviceListenerList@1e643faf,handle=,activeConfigurationNumber=1,claimedInterfaceNumbers=[],port=org.usb4java.javax.Port@6e8dacdf,queue=org.usb4java.javax.ControlIrpQueue@7a79be86,detachedKernelDriver=false]org.usb4java.javax.NonHub@34ce8af7[manager=org.usb4java.javax.DeviceManager@2752f6e2,id=Bus 001 Device 009: ID 28de:2022,parentId=Bus 001 Device 001: ID 8086:9d2f,speed=2,configurations=[USB configuration 01],configMapping={1=USB configuration 01},listeners=org.usb4java.javax.DeviceListenerList@880ec60,handle=,activeConfigurationNumber=1,claimedInterfaceNumbers=[],port=org.usb4java.javax.Port@3f3afe78,queue=org.usb4java.javax.ControlIrpQueue@7f63425a,detachedKernelDriver=false]

"Java怎么访问USB设备"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

设备 内容 文件 更多 标准 知识 问题 测试 输出 配置 实用 成功 学有所成 接下来 代码 协会 困境 实际 底层 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 幼儿网络安全教育常识 2020公安信息网络安全考试 牢记网络安全争做文明网民 美国的网络安全流程标准叫啥 南京和新源网络技术 家里如何做个共享服务器 网络安全ai 创业 山西南园派互联网科技有限公司 江西通用软件开发资费 机器人软件开发承包合同范本 sql语句查询数据库版本 深圳厚拓网络技术有限公司 网络安全法-百度文库 mac软件开发需要什么 mysql查看数据库列表 深圳网警网络安全知识 深圳自助点餐软件开发 网络安全宣传海报的手抄报 杭州博宇网络技术有限公司 网络安全责任自查报告 石柱网络安全宣传周 网络安全大的重要性 鹰硕信创中心华南数据库 软件开发一般工作是什么意思 北京软件开发培训中心 平面文件 迁移 数据库 学校网络安全教育会议记录 调用数据库数据显示到页面 广州链动互联网科技有限 大学生网络安全的诸多问题
0