java读蓝牙设备_从Android中的蓝牙设备读取数据

我正在使用蓝牙聊天功能,以便连接和接收来自蓝牙设备的数据。

我使用以下代码读取数据:

public void run() {

byte[] buffer = new byte[1024];

int bytes;

Log.v("MR", "start listening....");

// Keep listening to the InputStream while connected

while (true) {

try {

// Read from the InputStream

Log.d("MR", "buffer in try");

bytes = mmInStream.read(buffer);

Log.d("MR", "input stream :"+(new String(buffer)));

// Send the obtained bytes to the UI Activity

mHandler.obtainMessage(Conn.MESSAGE_READ, bytes, -1, buffer).sendToTarget();

Log.d("MR", "buffer after");

} catch (Exception e) {

Log.e("MR", "Error :"+e.getMessage());

//

connectionLost();

// break;

}

Log.d("MR", "buffer after while");

}

}

设备一直在发送数据而不会停止。

通过上面的代码,我得到以下消息:

Log.d("MR", "buffer in try");

然后转到下一行:

bytes=mmInStream.read(buffer);

并且永远不会从该呼叫中返回。我猜这是因为它开始从设备读取数据,并且直到断开连接才停止。如何一次读取一定数量的字节?

编辑

除非bytes = mmInStream.read(buffer);由于它不保留代码,否则不从设备取回任何数据?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值