0

我有以下用例:

  1. 用户将配件连接到手机。
  2. 应用程序在手机上自动启动(这是 AOA 功能的一部分)。
  3. 应用程序和附件之间的通信继续进行。
  4. 用户关闭应用程序(通过将其从最近的应用程序菜单中滑出)。
  5. 用户再次启动应用程序。
  6. 附件尝试将数据发送到应用程序。

在第 6 步,我USB error 7: Transfer error on bulk endpoint: Operation timed out安装了附件 - 就像应用程序根本没有运行时一样!即使通知应用程序有可用的 UsbAccessory,也会发生这种情况。

处理这种情况的正确方法是什么?

4

1 回答 1

1

目前,如果应用程序关闭,无法重新打开端口以接收来自 android 端的接收。它是由较低层驱动程序实现中的错误引起的。

处理此问题的一种方法是运行协议以检查应用程序是否处于活动状态。如果它不存在,一种可能的恢复方法是从附件端重新启动 USB 端口。

触发低层驱动程序重新枚举的最佳方法是立即重启 USB 端口。

如果您在关闭应用程序之前关闭端口,它会正常工作。但这里的情况并非如此,因为该应用程序被杀死了。

于 2014-11-14T06:02:38.470 回答