- 当前 Bug 的表现(可附上截图)
使用wx.createBLEConnection连接BLE设备后,接着使用wx.getBLEDeviceServices获取服务UUID,获取服务UUID有时候会报错,errCode为:10004(no service),重新调用wx.getBLEDeviceServices接口还是报同样的错误,如果去调用wx.createBLEConnection重新连接设备,会报错,errCode为:-1(already connected)
- 预期表现
wx.createBLEConnection连接设备后,wx.getBLEDeviceServices获取服务UUID应该成功
- 复现路径
- 提供一个最简复现 Demo
createBLEConnection: function (deviceId){
wx.createBLEConnection({
deviceId: deviceId,
success: (res) => {
console.log("createBLEConnection success: ", res)
this.getBLEDeviceServices(deviceId)
},
fail: (res) => {
console.error("createBLEConnection fail: ", res)
if (res.errCode == -1){
this.getBLEDeviceServices(deviceId)
}
else {
wx.showModal({
title: '提示',
content: '连接失败,请稍后重试!',
showCancel: false
})
}
}
})
}
getBLEDeviceServices: function (deviceId) {
wx.getBLEDeviceServices({
deviceId,
success: (res) => {
for (let i = 0; i < res.services.length; i++) {
if (res.services[i].isPrimary) {
let serviceId = res.services[i].uuid
wx.getBLEDeviceCharacteristics({
deviceId,
serviceId,
success: (res) => {
console.log('getBLEDeviceCharacteristics success: ', res.characteristics)
},
fail: (res) => {
console.error('getBLEDeviceCharacteristics failed: ', res)
}
})
return
}
}
},
fail: (res) => {
console.error("getBLEDeviceServices failed: ", res)
if (res.errCode == 10004){
wx.showLoading({
title: '设备连接出错,自动重连中',
})
setTimeout(() => {
let _deviceId = deviceId
this.createBLEConnection(_deviceId)
//this.getBLEDeviceServices(_deviceId)
}, 1000)
}
}
})
}
请问下楼主这个问题解决了吗?连接低功耗蓝牙也会报错
1、我用的双模蓝牙,经典蓝牙连接着时,小程序连接BLE就会这样,经典蓝牙不连接时,没有问题,用Nrf Connect来测试,也没有问题;
2、复现问题用官方提供的Demo就可以,https://github.com/wechat-miniprogram/miniprogram-demo/issues/15#issue-449040236
请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
手机型号小米MIX2S,设备是一个双模蓝牙,复现问题的代码暂时只有我上面贴出来的,项目代码不方便全放上来。
有一个现象是,双模蓝牙里面的BLE跟小程序连接比较费时间,特别是在经典蓝牙连接了手机,并且手机通过蓝牙在放歌的时候,小程序BLE的连接会很不稳定
另外,出现出现这问题后,用nrf connect这个APP是能正常连上设备并收发数据的
原生的BLE App能正常运行么...
我->设置->帮助与反馈->右上角扳手上传日志,并提供微信号与时间点哈。
---
来个日志看看.
nrf connect这个APP就是原生BLE APP,日志上传了
兄弟,我在社区里面搜到好几个跟我类似的问题,你们都没回答啊。。。。。
我表示对你们使用的安卓BLE底层库有点怀疑啊,参考一下这个吧:https://github.com/NordicSemiconductor/Android-BLE-Library
nordic这家的BLE做的是最好的,
期待你们尽快回复啊