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