小程序蓝牙调试问题求解
发布于 5 年前 作者 guiyingchen 1432 次浏览 来自 问答

在android设备上使用的小程序通过wx.getBluetoothDevices()接口获取搜索到的测试设备信息,回调函数的返回值device对象没有文档上的advertisData参数,返回信息如下:

{"deviceId":"4F:A5:27:17:83:C0","name":"未知设备","RSSI":-90,"advertisServiceUUIDs":["00006BFC-0000-1000-8000-00805F9B34FB"],"localName":""}。想问一下,为什么回调函数返回值没有文档上说明的advertisData参数????

10 回复

这个问题有结论了吗?确实有时候广播包内没有advertisData,serviceData也是时有时没有。

这里想问一下是返回的所有device都没有advertisData,还是说只有目标Device没有advertisData?

稍等,我让相关同事在这个帖子跟进下, advertisData  是 arraybuffer 类型, console.log 可能打印不出来。

按照官方文档里的advertisData是一个键值对,返回值里连这个键都没有

搜索到的MiKettle设备不是我们的设备,有advertisDataUUIDs,没有advertisData,其他的不是不知名的设备有advertisDataUUIDs也有advertisDataUUIDs

是目标设备广播包的问题还是API的问题????

18725521185 是我的微信 你是要我去看看android收到的广播包数据么?

只要有advertisServiceUUIDs参数就没有advertisData,不全是目标设备没有advertisData,像搜索到的设备MiKettle就不是我们的目标设备

客户端自查了逻辑:广播包内数据如果没有advertisData数据则没吐出,查看了@南先生 日志,也看到了部分设备是有正确吐advertisData的,这里可能要更加具体去看广播包的内容(因为原生App可以),分析一下是A客户端解析出来的有问题,还是B说广播包的问题。

方便添加一下微信,跟进一下这个问题吗?

感谢。

我们android开发的app也是获取的这个广播包里的数据的,他们说有的

回到顶部