java使用usb4java读取usb连接的设备

1、最近在做一个java与usb通信的项目,在我原来的理解中,java是不能读取电脑底层设备信息的,所有就让人用C写一个中间程序来传递数据。但是最近在查询资料的时候,看到usb4java是写好的jar包,可以用java读取硬件设备,虽然最终不知道是什么原因一直无法读取我公司的硬件设备,但是可以查看到鼠标、键盘、手机是否连接usb。做一个参考吧。

2、首先需要查看usb连接的idVendor和idProduct;java需要根据这个来判断是哪个usb

(1)我的电脑右键--管理--设备管理器

(2)点击要查看的设备,点击详细信息,选择硬件ID;下图的idVendor=12D1;idProduct=1082的16进制数

3、代码:

(1)引入的包:

          <dependency>
            <groupId>org.usb4java</groupId>
            <artifactId>usb4java-javax</artifactId>
            <version>1.2.0</version>

          </dependency>

(2)需要在resource下加入允许使用jar包的文件javax.usb.properties;里面的内容为:javax.usb.services = org.usb4java.javax.Services

(3)class代码如下:

package com.jda.iwpss.test;

import java.util.List;

import javax.usb.UsbConfig

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 34
    评论
Java可以通过使用javax.usb包来读取USB接口数据。 首先,您需要将javax.usb库添加到您的Java项目中。您可以从官方网站下载它,或者使用Maven等构建工具进行导入。 接下来,您需要创建一个UsbhostManager对象,它是javax.usb库的入口点。您可以使用UsbHostManager.getUsbServices()方法来获取对UsbServices的引用。 然后,您可以使用UsbServices.getRootUsbHub()方法获取对根USB hub的引用。从根USB hub,您可以遍历所有连接设备和端口。 然后,您需要找到您要读取数据的USB接口。您可以使用UsbDevice.getUsbConfiguration()方法来获取对配置的引用,然后使用UsbConfiguration.getUsbInterface()方法来获取对接口的引用。 一旦您获得了对接口的引用,您可以使用UsbInterface.getUsbEndpoints()方法获取与接口相关的所有端点。选择合适的输入端点,并获取对该端点的引用。 然后,您可以使用UsbEndpoint.getUsbPipe()方法获取对与所选端点相关联的管道的引用。该管道将用于读取数据。 使用UsbPipe.open()方法打开管道,然后使用UsbPipe.syncSubmit()方法读取数据。您可以使用ByteBuffer或byte数组来存储读取的数据。 最后,使用UsbEndpoint.releaseUsbPipe()方法释放资源,并使用其他相关方法关闭您使用的对象和连接。 以上是使用Java读取USB接口数据的大致过程。具体的代码实现可能因设备和操作系统的不同而有所变化。因此,您可能需要查看官方文档和示例代码,以根据您的具体需求进行进一步的开发和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值