在java中识别新设备

时间:2011-05-01 08:29:52

标签: java windows device

我想知道连接新设备的时间。

我了解到可以使用以下方法获取C#中的所有当前设备:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select VolumeName, DeviceID from Win32_LogicalDisk Where Not (VolumeName is null)");

然后searcher.get()返回设备的集合。

我可以在java中使用与ManagementObjectSearcher并行的东西吗? 如果没有,是否有另一种获取连接设备列表的方法?或者找出新设备何时连接的其他方法?

感谢。

1 个答案:

答案 0 :(得分:0)

我知道在Java中没有真正的跨平台方式。如果您对仅使用Windows的解决方案感到满意,最简单的解决方案是生成可以使用Runtime.exec()从Java程序调用的C#/ VBScript可执行文件。

如果你想要一个“更好”的解决方案需要更多工作(但仍然只有Windows),你可以使用iKVM来连接你的C#和Java程序。

我从跨平台的角度来看唯一能想到的(这仍然使用本机库是使用RXTX轮询COM端口上的枚举,并检查什么时候发生了变化。这不会给你一个列表所有设备,它只适用于使用COM端口的设备,但根据您的需要,它可能就足够了。这种方法的优点是RXTX二进制文件可以自由存在于每个公共平台。