检测插入usb并使用java在linux中读取其文件

时间:2017-06-25 13:41:03

标签: java linux usb

我一直试图:

  1. 检测现场安装的usb棒
  2. 阅读其文件。
  3. 使用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;
    }
    

2 个答案:

答案 0 :(得分:2)

用于阅读文件(第2部分),

1 - 首先阅读您正在进行的接口和端点详细信息

getDeviceDescriptor(Device device, DeviceDescriptor descriptor)

2 - 根据可用的端点,您可以启动同步或异步传输来读取数据 -

public static int controlTransfer(DeviceHandle handle, ...)  
public static int bulkTransfer(DeviceHandle handle, ...)

请记住,usb4java在libusb之上工作。

  

usb4java示例 - link
  usb4java API参考 - link
  libusb API参考 - link

答案 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信息的方法

相关问题