安卓手机蓝牙收不到数据
发布于 5 年前 作者 liangxiuying 15192 次浏览 来自 问答

测试流程:

  1.蓝牙开启

  2.发现设备

  3.连接设备

  4.获取UUID、特征值

  5.启用设备特征值变化时的 notify 功能notifyBLECharacteristicValueChange成功

  6.监听低功耗蓝牙设备的特征值变化onBLECharacteristicValueChange成功

  7.发送数据writeBLECharacteristicValue成功

  8.蓝牙设备收后返回一串156字节长的数据,已经按20字节分好包(从硬件调试工具看到收发已成功)

  9.小程序用“6”中注册的onBLECharacteristicValueChange回调接收多个数据包合并起来完成整个流程

测试结果:

   1.ios [ Iphone6,IOS8.4.1,Wechat6.6.1,WeChatLib:1.9.1(2018.1.4) ]

       结果:所有步骤一次成功,数据收发完整无误,多次测试均流畅稳定,截图如下:

     
       

     

   2.android [小米MIX,Android7.0,WeChat6.6.1,WeChatLib:1.9.1(2018.1.4)]

       结果:1-8均正常,硬件调试工具显示已经收到小程序发来的数据,也向小程序返回了156字节参数但是小程序的onBLECharacteristicValueChange回调并没有收到数据!第5、6步均成功说明回调注册没问题,但没有收到数据是否属于bug?截图如下:

   

尝试:

   在发送数据成功时添加 readBLECharacteristicValue ,此时可以收到数据,但只能收到最后一个包!!

 

 

问题:

  小程序安卓版的 onBLECharacteristicValueChange 函数接口是否有bug?或者我的程序处理有问题?有没有朋友遇到过这个问题欢迎留言也请官方释疑,谢谢!

5 回复

看流程没有什么问题,方便复现一下问题,并在任意聊天框输入//uplog,提供一下微信号,我看一下客户端表现?感谢。

看日志,小程序逻辑应该没有什么异常,但发现监听设备的特征值是同时支持notify和indicate的,这里之前有过case发现当设备同时支持这两种操作是会没有回调。

试着在notifyBLECharacteristicValueChange接口加上 type:notification 看看。

请问下:我开发蓝牙时遇到调用notifyBLECharacteristicValueChange这个api,一直fail。android和ios都不行,不知道是啥问题。其它蓝牙API都可以正常调用。蓝牙设备也是支持notify的

谢谢,ios,android已经都可以正确拿到数据(调试期间出现过数据包无规律重复以及最后几个包顺序错误的情况后来自己正常了。。。麻烦暂时不要关闭这个问题,我再继续测试看看)

您好,android手机记录已上传,iphone的输入//uplog没反应无法上传,微信号zhaiyujia388

回到顶部