- 当前 Bug 的表现(可附上截图)
ios小程序 开启了notify 可以获取到特征值变化如下图:
同样代码Android小程序 notify也是开启成功,但是收不到特征值变化
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
代码贴上
wx.getBLEDeviceServices({
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
deviceId: deviceId,
success: function(res3) {
console.log('device services:', res3.services)
wx.getBLEDeviceCharacteristics({
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
deviceId: deviceId,
// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
serviceId: that.globalData.serviceId,
success: function(res2) {
console.log('device getBLEDeviceCharacteristics:', res2.characteristics)
wx.notifyBLECharacteristicValueChange({
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
state: true,
type: 'notification',
success: function(res) {
console.log(res)
console.log('notify开启成功')
setTimeout(function() {
wx.onBLECharacteristicValueChange(function(characteristic) {
console.log('characteristic value comed:', that.buf2hex(characteristic.value));
})
}, 1000)
},
fail: function(r) {
console.log(r)
}
})
setTimeout(function() {
wx.writeBLECharacteristicValue({ //开锁指令
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
value: buffer,
success: function(res) {
console.log(res)
console.log('writeBLECharacteristicValue success', res.errMsg)
wx.readBLECharacteristicValue({
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
success: function(res) {
console.log(res)
},
fail: function(e) {
console.log(e)
}
})
}, 1000);
},
fail: function(e) {
console.log('获取特征值')
console.log(e)
}
})
}
})
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
我发现问题了,发送的数据太长了 导致的, 我调整发送数据到20字节 是可以收到的,
不知道什么时候能提供设置MTU的方法啊
ble接口,一次调用应该是只能发送20字节的数据包,需要大于20字节,只能分片发送。
ios的怎么超过20字节也能收到呢
要不你先看下下面这个帖子,这个是很详细的小程序蓝牙写入20字节的数据
https://developers.weixin.qq.com/community/develop/doc/000cc6f48745400569171e34b51400
这个是蓝牙写入啊 我不是写入数据啊 我也没有调用write