Android UsbManager.openDevice(设备设备)抛出异常“设备不存在或被限制”

时间:2014-04-07 06:33:20

标签: android usb

我使用线程将数据发送到我的usb设备(不是数据存储)并从设备获取返回数据。

前5分钟工作正常。数据输入,数据输出。 (我几乎开始在第六分钟唱歌。)

然后它突然失去了联系。

有logcat消息:

    java.lang.IllegalArgumentException: device /dev/bus/usb/001/002 does not exist or is restricted
    at android.os.Parcel.readException(Parcel.java:1331)
    at android.os.Parcel.readException(Parcel.java:1281)
    at android.hardware.usb.IUsbManager$Stub$Proxy.openDevice(IUsbManager.java:340)
    at android.hardware.usb.UsbManager.openDevice(UsbManager.java:255)

所以,我检查了UsbManager的代码,试图找出IUsbManager ...

冷却。一个接口......并且没有关于它的信息。这就是我在这里的原因。

有没有任何线索???

1 个答案:

答案 0 :(得分:1)

应用程序应正在监听UsbManager.ACTION_USB_DEVICE_ATTACHEDUsbManager.ACTION_USB_DEVICE_DETACHED的意图。它应尝试打开从attached意向接收到的设备。

当应用尝试重新打开与UsbDevice的连接时,通常会发生错误。当UsbDevice重新连接时,将为其分配一个新的硬件地址(旧:/dev/bus/usb/001/002,新:/dev/bus/usb/001/003)。