蓝牙串口返回数据过长分包的问题


用处:不管是蓝牙通讯还是串口通讯,都会出现返回数据过长而导致分包的问题

 

解决思路:接到第一份数据的时候等待0.5秒  , 之后完整的数据应该会全部发过来。

 

byte[] bytTemp = new byte[1024]; 
int nRetCount = 0;  
     if( mInputStream.available()>0 == false ){ //available()方法 检查数据文件大小 返回值为int
      continue;
     }else{
      Thread.sleep(500); //休眠时间可以根据接收数据长短修改
     }  
nRetCount = mInputStream.read(bytTemp);

 

出现分段过来的时候:第一次 mInputStream.available() 可能数据不完整

但是休眠0.5秒过后执行  nRetCount = mInputStream.read(bytTemp);

时,输入流应该已经完整了 。而且不像分成两段时候执行了两次缺失输入流

 

这里虽然数据是分两段发过来的,但是sleep后面的代码只会执行一次。


转载说明出处:http://blog.csdn.net/qq_32198277/article/details/50965975?locationNum=3&fps=1


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值