我遇到过你这个问题,时间比较久解决办法有点忘了,你可以自己去看下,https://github.com/arsize/ble,大概是用promise按次数嗅探,达到次数之后再停止,这个问题的出现的确和延时有关,但是单纯用延时函数好像没什么作用。另外你上面说的uuid写死没用,其实也不对,如果你们和硬件是1对1的确认关系,是可以写死的,省了中间嗅探的步骤速度会加快不少,我就是写死的,线上已经运行一年了没什么问题。
BLE 蓝牙的 wx.getBLEDeviceServices()接口在ios端上只能返回3条数据?同样的逻辑代码,在设备connect之后,调用wx.getBLEDeviceServices()接口,ios端上只能返回3条service uuid信息,android端上可以返回全部5条service uuid信息。 使用官方的代码片段只是添加了打印信息,在wx.getBLEDeviceServices()中也是只能打印出3条service 的uuid。是ios端上丢失了service 的uuid吗?还是可以怎么设置,让ios也接收全部5个service uuid?。在论坛上好像发现也有人出现这个情况,https://developers.weixin.qq.com/community/develop/doc/00086af5978e886b03cac99ca5e400 这么久了,没有解决方案吗?别说写死uuid进行读写,ios端需要先进行一次getBLEDeviceServices 和一次 getBLEDeviceCharacteristics 而且是要找到需要用的uud ,下面的读写操作才能正常运行。写死是不管用的,直接会报10004 no service。我也不提供代码,官方的demo直接加打印就看到了。 [图片][图片]
2021-09-07蓝牙这块回调有时候错乱会影响重复连接,可以参考这个。 https://github.com/arsize/ble
小程序对接蓝牙连接问题?第一步:初始化蓝牙状态 getBluetoothAdapterState 成功 第二步:开始搜寻附近的蓝牙外围设备 startBluetoothDevicesDiscovery 成功 第三步:调用 getBluetoothDevices 成功 第四步:连接蓝牙 createBLEConnection 第一次能成功,但是后面多次连接,一直走 fail 回调。 不知道具体什么原因导致的?
2021-06-19