getDeviceList() always empty

风格不统一 提交于 2019-12-09 00:44:16

问题


I'm trying to use an Arduino Board along with my Odys Neo x8 tablet but it seems, that the UsbManager doesn't recognize the device alright. I connected the arduino to the tablet via an OTG-adapter so that the tablet will work in host mode, the Arduino is successfully receiving power from the device. I'm fetching the list of available USB-devices on the tablet as follows:

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");

And inside the class UsbController:

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

But unfortunately, the list remains empty, even if i start filtering using the VID and the PID (the two zeros). Any suggestions on how to fix this?


回答1:


I have used the following code which works very fine with keyboard, mouse and Mass Storage device to connect with 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());
  }

This should work with Arduino too.




回答2:


The Arduino board needs a driver which needs to be installed before it can be accessed.

I am not sure if you have a port of the driver for Android.

Edit:

Also check out this answer in another thread.



来源:https://stackoverflow.com/questions/13299393/getdevicelist-always-empty

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!