getDeviceList()始终为空

时间:2012-11-08 22:58:52

标签: android arduino usb device

我正在尝试使用Arduino Board和我的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");

在班级UsbController中:

mUsbManager = (UsbManager) mApplicationContext
            .getSystemService(Context.USB_SERVICE);

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

2 个答案:

答案 0 :(得分: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());
  }

这也适用于Arduino。

答案 1 :(得分:0)

Arduino板needs a driver需要在可以访问之前安装。

我不确定您是否拥有适用于Android的驱动程序端口。

修改

另请查看另一个帖子中的this answer