“直播”字节源接口?

时间:2014-05-15 20:43:21

标签: java android serial-port

我正面临着我期望的常见问题,但我无法找到现有的解决方案。我想确保在推出自己的轮子之前不要重新发明轮子。

前段时间,我编写了一个蓝牙串行库,其中工作线程建立套接字连接,然后从中读取,每当收到数据时在UI线程中发布回调。我的理由是你通常想要在UI线程之外进行I / O(特别是阻塞I / O),那么为什么不让图书馆来处理呢?该应用程序只需要实现回调接口来处理传入的数据。像这样:

public interface ConnectorListener {
   void onData(BluetoothConnector connector, byte[] data);
}

现在我想概括我的接口来处理其他串行字节源和接收器。所以再一次,我正在四处寻找是否有我可以使用的现有界面......

1 个答案:

答案 0 :(得分:0)

我发现最接近的是AsynchronousByteChannel。使用此界面,您可以在数据到达时启动读取并收到CompletionHandler的回调。这与我最初关于" live source"的想法略有不同。这将不断阅读,进行多次回调。

无论如何,它是没有意义的,因为在Java 1.7中添加了AsynchronousByteChannel并且在Android上不可用。我可能会复制它,以便在代码可用时更容易标准化我的代码。