getDeviceList() 始终为空

Tim*_*cht 5 usb android arduino device

我正在尝试将 Arduino 板与我的 Odys Neo x8 平板电脑一起使用,但似乎 UsbManager 无法识别该设备。我通过 OTG 适配器将 arduino 连接到平板电脑,以便平板电脑在主机模式下工作,Arduino 成功从设备接收电源。我正在获取平板电脑上可用 USB 设备的列表,如下所示:

sUsbController = new UsbController(this, mConnectionHandler, 0, 0);
        HashMap<String, UsbDevice> devlist = sUsbController.mUsbManager.getDeviceList();
        TextView t = ((TextView)findViewById(R.id.textView));
        t.setText("Found " + Integer.toString(devlist.size()) + " devices");
Run Code Online (Sandbox Code Playgroud)

在类 UsbController 中:

mUsbManager = (UsbManager) mApplicationContext
            .getSystemService(Context.USB_SERVICE);
Run Code Online (Sandbox Code Playgroud)

但不幸的是,即使我开始使用 VID 和 PID(两个零)进行过滤,该列表仍然是空的。对于如何解决这个问题,有任何的建议吗?

Arp*_*pan 1

我使用了以下代码,它可以很好地与键盘、鼠标和大容量存储设备一起连接 Pandaboard,

  UsbManager usbManager = (UsbManager) getSystemService(USB_SERVICE);
  HashMap<String, UsbDevice> devicelist = usbManager.getDeviceList();
  Iterator<UsbDevice> deviceIterator = devicelist.values().iterator();

  while(deviceIterator.hasNext()) {
    UsbDevice usbDevice = deviceIterator.next();
    Log.i(Log_Tag, "Model     : " +usbDevice.getDeviceName());
    Log.i(Log_Tag, "Id        : " +usbDevice.getDeviceId());
  }
Run Code Online (Sandbox Code Playgroud)

这也应该适用于 Arduino。