Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 关闭USB附件连接的正确方法_Android_Usb_Adk_Accessory - Fatal编程技术网

Android 关闭USB附件连接的正确方法

Android 关闭USB附件连接的正确方法,android,usb,adk,accessory,Android,Usb,Adk,Accessory,在Android中,关闭与UsbAccessory连接的正确方法是什么? 即使在谷歌股票的例子中,如果我连接并附件,退出应用程序,然后返回,连接也不会重新建立 仔细观察,似乎在调用文件描述符上的close()后,它不会再次打开,并发出“无法打开/dev/usb_附件”日志。 不调用close()是一个坏选项,因为read()上的线程阻塞将不会被释放。物理断开/重新连接设备后,一切正常 退出应用程序然后再次打开它的简单用例在参考应用程序中不起作用,这似乎真的令人惊讶,如果不可行,则更令人惊讶 我使

在Android中,关闭与
UsbAccessory
连接的正确方法是什么? 即使在谷歌股票的例子中,如果我连接并附件,退出应用程序,然后返回,连接也不会重新建立

仔细观察,似乎在调用
文件描述符
上的
close()
后,它不会再次打开,并发出“无法打开/dev/usb_附件”日志。 不调用
close()
是一个坏选项,因为
read()
上的线程阻塞将不会被释放。物理断开/重新连接设备后,一切正常

退出应用程序然后再次打开它的简单用例在参考应用程序中不起作用,这似乎真的令人惊讶,如果不可行,则更令人惊讶


我使用的是Nexus S运行股票Android 2.3.6

问题是读取线程永远不会退出,因此文件描述符保持打开状态,并且在应用程序恢复时无法再次打开

已确认这是一个错误:

如果您关心此错误,请对其进行投票。

尝试重新连接两次 第一次不成功时,可能会关闭连接,然后再次尝试打开连接,这将起作用!
对我来说,成功了

是的,很好,我喜欢这些bug:(你是如何绕过这个问题的?你有什么解决方法吗?我解决这个问题的方法是从安卓系统发送一个“软关闭”命令,这会导致一个“软关闭”命令从附件返回安卓系统,这反过来又会解除读取()。只有当应用程序优雅地存在并且协议不会失去同步时,它才会工作。实际上,它并不完美,但总比没有好。谢谢!我想这也是我实现它的方式。那么如何实现“软关闭”?同时更新Android bug 20545:已开发修复程序,但尚未合并到Android trunk中:。我遇到了完全相同的问题,“无法打开/dev/usb_附件”消息,但每当我尝试重新连接设备时:(顺便说一句,我的应用程序仍处于打开状态。