【问题标题】:Android UsbManager.openDevice(Device device) throw an Exception "device does not exist or be restricted"Android UsbManager.openDevice(Device device) 抛出异常“设备不存在或被限制”
【发布时间】:2014-04-07 06:33:19
【问题描述】:

我使用线程将数据发送到我的 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是什么...

酷。一个接口......关于它是什么的信息为零。这就是我在这里的原因。

有人知道吗???

【问题讨论】:

  • 您好,当我重新启动我的 USB 设备时,我遇到了同样的异常。我怀疑您使用该设备的许可是“重新请求的”。当这种情况发生在我身上时,我必须重新连接 USB 电缆。不过,我还没有找到任何解决方法。
  • 你有解决办法吗?我在尝试连接 USB CDC 类时遇到了同样的异常。
  • 你需要释放你的 UsbConnection。我不能给出一个确切的数字。大约是发送数据十次,然后发布一次。 (并再次获得一个 UsbConnection ......)
  • @ErikSoderstrom “重新请求”是什么意思?顺便说一句,遇到同样的问题...您找到解决方案了吗...?
  • 对不起。不重新请求。我应该说...重新打开(UsbManager.openDeivice)\

标签: android usb


【解决方案1】:

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

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

【讨论】:

  • OMG 所以可以断开与DEVICE的连接。然后我们需要等待监听器获取新的 DEVICE 并继续任务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-28
  • 2018-11-25
相关资源
最近更新 更多