import javax.usb.*;
import javax.usb.event.UsbServicesEvent;
import javax.usb.event.UsbServicesListener;
public static void main(String[] args) throws Exception {
UsbServices services = UsbHostManager.getUsbServices();
UsbHub root = services.getRootUsbHub();
listDevices(root);
services.addUsbServicesListener(new UsbServicesListener() {
@Override
public void usbDeviceAttached(UsbServicesEvent event) {
try {
UsbDevice device = event.getUsbDevice();
// 获取设备信息
String deviceName = device.getManufacturerString() + " " + device.getProductString();
String deviceId = device.getUsbDeviceDescriptor().idVendor() + ":" + device.getUsbDeviceDescriptor().idProduct();
// 打印设备信息
System.out.println("USB device attached: " + deviceName + " (ID: " + deviceId + ")");
} catch (UsbException e) {
throw new RuntimeException(e);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
@Override
public void usbDeviceDetached(UsbServicesEvent event) {
try {
UsbDevice device = event.getUsbDevice();
// 获取设备信息
String deviceName = device.getManufacturerString() + " " + device.getProductString();
String deviceId = device.getUsbDeviceDescriptor().idVendor() + ":" + device.getUsbDeviceDescriptor().idProduct();
// 打印设备信息
System.out.println("USB device detached: " + deviceName + " (ID: " + deviceId + ")");
} catch (UsbException e) {
throw new RuntimeException(e);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
});
}
private static void listDevices(UsbHub hub) {
@SuppressWarnings("unchecked")
List<UsbDevice> devices = (List<UsbDevice>) hub.getAttachedUsbDevices();
for (UsbDevice device : devices) {
if (device.isUsbHub()) {
listDevices((UsbHub) device);
} else {
System.out.println(device);
}
}
}
相关推荐
基于usb4java实现的java下的usb通信
项目地址:点击打开 使用java开发的好处就是跨平台,基本上java的开发的程序在linux、mac、MS上都可以运行,对应这java的那句经典名言:一次编写,到处运行。这个项目里面有两种包选择,一个是low-level(libus)一个是high-level(javax-usb),相关的优缺点在官方网站上已经说明了,我这里就不翻译了,不过前者好像基于libusb已经好久不更新了,所以还是选择后...
Java实现USB插入监听并保存日志
用Java写一个可以在windows上运行的监听器,检测假如有人插入U盘并传输文件的时候,记录插入的U盘信息以及传输的文件名和传输的文件内容,并且把事件保存到日志文件中
JAVA USB监听器
自动监控USB设备,插上后自动复制指定类型文件到指定目录!后台运行,隐藏性能较好。
java键盘监听详解
更多示例代码请看我的其他博客或GitHub。不定期更新,学习过程中用到就写到哪里,作为模板供以后使用和复习。 一般来说,为组件添加监听的代码都类似形式: (这一段的*代表的是同一单词) object.add*Listener(new *Listener() { @Override //实现所有方法... }); 上面的参数是实现了对应接口的内部类,这样就需要实现接口里的...
Java自动监视usb设备,
Java自动监视usb设备,复制存储设备中指定格式文件到本地
java监听器demo
一个java监听器的实现demo,即观察者设计模式实现
Java系统监控(淘汰sigar)
Java系统监控(淘汰sigar) Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件。它用来从许多平台收集系统和处理信息. 这些平台包括:Linux, Windows, Solaris, AIX, HP-UX, FreeBSD and Mac OSX. Sigar有C,C#,Java和Perl API,...
AR Tag 与 ROS:从基础部署到机器人视觉定位实战
本文详细介绍了AR Tag技术在ROS环境下的部署与应用,涵盖从基础原理到机器人视觉定位的实战技巧。通过分析AR Tag的特征提取、位姿解算等核心技术,结合ROS工具包`ar_track_alvar`的配置优化,帮助开发者实现高精度的视觉定位系统。文章还分享了深度相机配置、坐标转换及性能优化等实用经验,适用于仓储机器人、物流分拣等场景。
JNA USB-hid 设备连接的案例(半成品)回顾录
记录程序,减少烦恼,还我头发,啊啊啊啊啊啊啊啊啊啊啊! 感谢面对ai编程,感谢头发
混合编程实战:C#集成C++ PCL点云处理库,打造跨语言动态链接库
本文详细介绍了C#与C++混合编程实战,重点讲解如何通过动态链接库(DLL)集成C++ PCL点云处理库,实现跨语言协作。内容涵盖环境配置、PCL功能封装、C#调用DLL的完整方案,以及性能优化和错误处理等进阶技巧,帮助开发者高效处理大规模点云数据,提升工业软件开发效率。
HFSS仿真的后处理结果,如何根据天线表面的电流密度分布对天线进行优化?
在HFSS仿真中,天线表面的Jsurf是最直观、最有价值的诊断工具之一。它不仅告诉你天线“能不能工作”,还能告诉你“为什么工作”以及“哪里出了问题”。
深度解析:Flashtool开源项目的5个核心技术实现与高级刷机实践
Flashtool是一款专为索尼Xperia设备设计的开源刷机工具,通过Java技术栈实现了跨平台的设备固件刷写功能。该项目采用模块化架构设计,支持从底层USB通信到高层GUI界面的完整刷机流程,为技术爱好者和开发者提供了完整的刷机解决方案。 ## 🔍 核心架构解析:Flashtool的技术实现原理 Flashtool采用分层架构设计,将复杂的刷机过程分解为多个独立的模块,每个模块负责特定的
手把手教你用CMake和MinGW64编译libuvc:静态链接与动态链接的选择
本文详细指导如何在Windows平台上使用CMake和MinGW64编译libuvc库,并深入探讨静态链接与动态链接的选择策略。通过对比两种链接方式在部署复杂度、内存占用和版本管理等方面的差异,帮助开发者根据项目需求做出最优决策,实现高效的USB摄像头开发。
Java Robot自动化实战:从GUI操作到图像识别的完整指南
自动化测试是提升软件质量和开发效率的关键技术,其核心原理在于模拟用户操作以验证应用功能。在Java技术栈中,java.awt.Robot类提供了一种基于原生事件模拟的底层自动化能力,它通过JNI直接调用操作系统API发送键盘和鼠标事件,实现与真实操作无异的交互。这一技术价值在于其无需额外依赖、与JDK深度集成的特性,尤其适用于Java桌面应用测试、内部工具自动化及系统控制等场景。结合图像识别技术,如通过OpenCV进行高效的模板匹配,可以构建出更健壮、不依赖于绝对坐标的自动化脚本。本文聚焦于Robot类的深
【头歌实训:逆置顺序表】
根据提示,在右侧编辑器补充函数rev的代码,使用顺序表L的空间就地逆置L。},要求时间复杂度为O(n),空间复杂度为O(1)。第一行为顺序表逆置之前的元素。每个数据后一个空格。第二行为顺序表逆置之后的元素。每个数据后一个空格。本关任务:设计一个算法,将一个顺序表L的元素{a。第一行为顺序表中元素个数n。第二行为空格隔开的n个整数。开始你的任务吧,祝你成功!
基于Simulink环境,提供一个关于如何对无人机电源DC-DC变换器进行仿真建模的示例
无人机电源要求:无人机的各个子系统(如电机、传感器、通信模块等)可能需要不同级别的电压供应。重要性稳定性:稳定的电源是保证无人机各部件正常工作的基础。效率:高效的电源管理可以显著增加飞行时间和任务执行能力。挑战多负载适应性:需要能够为不同负载提供合适的电压和电流。动态响应:快速响应负载变化的能力对于维持系统稳定性至关重要。首先明确要模拟的任务内容。设计一个能够在不同负载条件下为无人机提供稳定电压的DC-DC变换器。根据无人机的工作状态调整控制策略以维持最佳性能。
Java实现监听USB插入
想用Java实现监听USB端口是否有移动设备插入,然后操作移动设备内的文件。网站查找资料后发现有个jsr-80的项目,下面先介绍一下什么是JSR:JSR是Java Specification Requests的缩写,意思是Java 规范请求。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和
基于深度学习YOLOv8的花卉检测与识别系统(附完整资源+PySide6界面+训练代码)
通过本项目,我们成功实现了基于YOLOv8的花卉检测与识别系统,涵盖了数据预处理、模型训练、推理与实时检测、以及GUI界面的实现。YOLOv8在花卉检测中的高效性和准确性为实际应用提供了强有力的支持。
java监控手机usb插拔
IDE相关视频讲解:C语言程序设计入门之环境安装实现Java监控手机USB插拔 1. 流程 首先,我们需要了解整个监控手机USB插拔的流程。下面是这个过程的步骤表格: 步骤 操作 1. 创建监听器 监听USB插拔事件 2. 注册监听器 将监听器注册到系统中 3. 实现监听方法 处理USB插拔事件 ...
基于江协科技STM32创建HAL库工程模板
基于江协科技STM32入门教程创建的HAL库工程模板
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
java 监听usb事件_一个用于监视USB设备插入拔出的程序代码
// UsbHook.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "Dbt.h"void DeviceChangeEventOpt(WPARAM wParam, LPARAMlParam){switch(wParam){caseDBT_CONFIGCHANGECANCELED:Mes...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
在Java应用程序中访问USB设备
在本文通过提供使Java 应用程序可以使用 USB 设备的 API 而使这个过程变得更容易.Java 平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的 Java 应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使Java 应用程序可以使用 USB 设备的 API 而使这个过程变得更容易。虽然这两个项目仍然处于萌芽状态,但是它
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
java监听usb拔插,android侦听USB或者SDCard热插拔事件
当我们做拔插的时候比如Usb或者SDCard,android底层会发出相应的Intent出来给上层应用成使用,比如SDCard或者Usb android都会发这样一个Intent.ACTION_MEDIA_MOUNTED,所以我们在上层应用程序中只要侦听这个Intent就可以了,怎么去区分到底是Usb或者SDCard?其实这个Intent里面带了一个Data,Data里面就封装了path参数,我们...
java jusb_通过java中的USB端口发送/接收数据流(send/receive Datastream througth USB-port in java)...
通过java中的USB端口发送/接收数据流(send/receive Datastream througth USB-port in java)在我开始使用java jUSB库之前,我想知道它是否对我有用。 我正在使用Windows 7,我想收到并发送流数据抛出USB。 我应该使用jUSB吗? 是不是可以用java?谢谢before I begin with working with java a...
Java扫描区块链的工具包|Java扫块|监听token转账
一个用Java开发的扫描区块链的工具包,当我们在程序中需要一些功能时,它可以派上用场,比如说。 当一个地址收到ETH时,程序中的一个方法会被自动触发,这个交易会被传入该方法。 当一个合约的某个功能被调用时(比如ERC20转账),它会自动触发程序中的一个方法,并将这个交易传递给这个方法。它甚至可以只在代币被转移到指定地址时被触发。 当程序需要保留一个区块高度开始以来的所有交易记录时,也可以使用这个工具包。
2473



被折叠的 条评论
为什么被折叠?



