闲碎记事本 闲碎记事本
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YAN

我要偷偷记录...
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • java

    • SpringBoot

    • SpringSecurity

    • MybatisPlus

    • Netty

    • sip

    • 其他

      • MDC 使用
      • 位运算
      • RedisMQ实现
      • 自定义枚举序列化
      • Mybatis使用自定义枚举
      • Jackson反序列化泛型注意点
      • 敏感词过滤算法
      • 线程
      • 并发学习
      • jni使用
      • 关于注释
      • 为什么一个Byte用两个16进制表示
      • JAVA获取系统信息
      • 对extends和super的理解
      • JAVA系统API
      • java探针初探
      • JAVA获取USB信息
        • HashMap初探
        • JAVA远程调试
        • 初探webflux
        • SSE示例
    • linux

    • docker

    • redis

    • nginx

    • mysql

    • 其他

    • 环境搭建

    • 知识库
    • java
    • 其他
    YAN
    2024-07-26
    目录

    JAVA获取USB信息

    使用usb4java,在JAVA中获取设备的UBS信息

    usb4java官网示例 (opens new window)

    # 导入依赖

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

    # 配置

    在资源目录下生成文件javax.usb.properties 并写入下面内容

    javax.usb.services = org.usb4java.javax.Services
    

    # 简单示例

    
    @Slf4j
    public class UsbUtil {
    
        /**
         * 查找指定 PID VID 设备
         * @param vendorId VID
         * @param productId PID
         * @return 是否USB设备
         */
        public static boolean findDevice(short vendorId, short productId) {
            try {
                UsbHub rootUsbHub = UsbHostManager.getUsbServices()
                        .getRootUsbHub();
                UsbDevice device = findDevice(rootUsbHub, vendorId, productId);
                return null != device;
            } catch (UsbException e) {
                log.error("USB检测异常",e);
                return false;
            }
    
        }
        /**
         * 在一个Hub中查找指定 PID VID 设备
         * @param vendorId VID
         * @param productId PID
         * @return 是否USB设备
         */
        @SuppressWarnings("unchecked")
        public static UsbDevice findDevice(UsbHub hub, short vendorId, short productId) {
            for (UsbDevice device : (List<UsbDevice>) hub.getAttachedUsbDevices()) {
                UsbDeviceDescriptor desc = device.getUsbDeviceDescriptor();
                if (desc.idVendor() == vendorId && desc.idProduct() == productId) return device;
                if (device.isUsbHub()) {
                    device = findDevice((UsbHub) device, vendorId, productId);
                    if (device != null) return device;
                }
            }
            return null;
        }
    
    
    }
    
    

    # 测试

    
    
    上次更新: 2025/05/14, 01:34:05
    java探针初探
    HashMap初探

    ← java探针初探 HashMap初探→

    最近更新
    01
    Caddy操作指南
    04-25
    02
    Swap空间
    04-22
    03
    Alist使用
    04-21
    更多文章>
    Theme by Vdoing | Copyright © 2022-2025 YAN | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式