在android中读取蓝牙输入流

时间:2011-12-08 09:55:21

标签: android input stream bluetooth

我正在开发一个应用程序,当我向生物识别设备发送请求以发送数据时,使用蓝牙从生物识别设备读取数据,生物识别设备显示响应并更新其显示屏幕,但是当我调用读取输入流的功能以获得响应时in_stream.available()返回0.我无法找出问题的根源。我已经测试了与其他应用程序相同的生物识别设备,它工作正常。 如果有人对这个问题有所了解,请帮助我。 提前谢谢。

1 个答案:

答案 0 :(得分:3)

不要使用available()方法。在大多数实现中它都被打破了。你应该经常阅读read()或read(byte [])。如果协议让你知道预期数据的大小(即一些前几个字节,告诉你后来有多少数据)你可以只读取那些数据。

如果数据量未知或您希望异步数据出现,则应在单独的线程中管理对流的写入/读取。这不仅适用于蓝牙,也适用于任何基本流处理(网络,文件等)