我正在开发一个使用蓝牙从生物识别设备读取数据的应用程序,当我向生物识别设备发送发送数据的请求时,生物识别设备通过更新其显示屏显示响应,但当我调用读取输入流的函数以获取响应时,函数in_stream.available()返回0。我找不到问题的根源。我已经用其他一些应用程序测试了相同的生物识别设备,它工作正常。如果任何人对这个问题有想法,请帮助我。提前谢谢。
发布于 2011-12-08 19:52:28
不要使用available()方法。它在大多数实现中都被破坏了。您应该经常使用read()或read(byte [])进行读取。如果协议让你知道预期数据的大小(例如,一些第一个字节告诉你之后会有多少数据),你就可以读取这个数据量。
如果数据量未知,或者您期望异步数据开始,那么您应该在单独的线程中管理对流的写入/读取。这不仅适用于蓝牙,也适用于任何基本的流处理(网络、文件等)
https://stackoverflow.com/questions/8429091
复制相似问题