我一直试图:
使用usb4java,我能够完成第1部分。但是usb4Java返回设备,我不知道如何访问设备的文件。
这是允许检测的代码(您可以在HotPlug example上找到完整的示例)
public int processEvent(Context context, Device device, int event,
Object userData) {
DeviceDescriptor descriptor = new DeviceDescriptor();
int result = LibUsb.getDeviceDescriptor(device, descriptor);
if (result != LibUsb.SUCCESS) {
throw new LibUsbException("Unable to read device descriptor",
result);
}
System.out.format("%s: %04x:%04x%n",
event == LibUsb.HOTPLUG_EVENT_DEVICE_ARRIVED ? "Connected" :
"Disconnected",
descriptor.idVendor(), descriptor.idProduct());
return 0;
}
答案 0 :(得分:2)
用于阅读文件(第2部分),
1 - 首先阅读您正在进行的接口和端点详细信息
getDeviceDescriptor(Device device, DeviceDescriptor descriptor)
2 - 根据可用的端点,您可以启动同步或异步传输来读取数据 -
public static int controlTransfer(DeviceHandle handle, ...)
public static int bulkTransfer(DeviceHandle handle, ...)
请记住,usb4java在libusb之上工作。
答案 1 :(得分:2)
你可以从java调用linux shell命令。你想获得有关USB上文件的信息,所以必须安装它,否则将无法轻松访问文件系统结构。如果它是自动安装的,你可以通过java看到文件系统,即
_DEFAULT
其中Process p = Runtime.getRuntime().exec("ls /media/home/USB_mass_storage_name");
是挂载点
如果未安装,则必须从java(How to execute bash command with sudo privileges in Java?)
安装USB Running system commands in Java applications中的是关于此的更多信息,也是从linux命令输出读回java信息的方法