我在重新连接 USB 附件时遇到问题,它已被拔掉并重新打开。第一次插入附件时,我能够执行所有步骤以实际与设备通信
- 枚举附件
- 获得访问附件的权限
- 打开附件
- 使用 FileDescriptor 的 I/O 流读取和写入设备
当我拔下电缆并再次插入时,我能够完成上面列出的前两个步骤。问题是 UsbManager 的打开附件返回 null 作为 ParcelFileDescriptor。什么可能导致这种情况?难道是因为某些资源仍然保留,因此 Android 无法授予我对设备的访问权限?在调用 openAccessory 之前,我正在释放 I/O 流并关闭 ParcelFileDescriptor。是否还应该做其他事情来正确清理附件?USB附件的官方文档页面有一个关于终止通信的部分,但它不是很有帮助。
http://developer.android.com/guide/topics/connectivity/usb/accessory.html