安卓 USB 配件多线程
我有一个由多线程和Android开放配件引起的问题。
我需要与 USB 配件通信,但我需要从 2 个线程进行通信。一个线程生成并发送数据,另一个线程读取数据。
-
为什么我不使用单个线程?因为在读取之前可以有 1 次或多次写入,并且读取被阻止,所以这不是一个选项。
-
如果使用多个线程,我迟早会遇到“I / O错误(没有这样的设备)”,因为我会同时执行读取和写入之间发生冲突。
-
锁定或多或少会让我回到单线程的情况下,所以不好。
-
.available()
不支持返回的方法,因此我无法在执行读取之前检查是否有任何可用内容input-stream
-
由于它不是基于套接字的流,因此我也无法设置超时。
-
我尝试从中获取并传递到那里处理它,但是在第一次读/写之后,设备变得无法访问。
FileDescriptor
USBAccessory
JNI
需要的问题/建议:
对此的建议/最佳实践方法是什么?我不期望编写代码,我只需要一些关于如何处理这个问题的指导。
澄清一下:
另一端的软件可能会或可能不会使用任何数据进行响应。有一些所谓的静默发送是刚刚收到但又没有ACK的数据。由于我正在开发的应用程序只是一个代理,因此我没有清晰的了解数据是否会产生答案。这也需要对数据进行分析,而目前还没有这方面的数据。