1、开启特征值变化监听
2、蓝牙设备5s修改一次特征值
3、app调用write方法
- 发布:2023-07-03 23:28
- 更新:2024-08-28 17:28
- 阅读:670
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows11
HBuilderX类型: 正式
HBuilderX版本号: 3.8.7
手机系统: Android
手机系统版本号: Android 13
手机厂商: 小米
手机机型: 红米k30sultra
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
write触发success回调,蓝牙设备收到数据包
write触发success回调,蓝牙设备收到数据包
实际结果:
write触发success回调,但是蓝牙设备没有收到数据包
write触发success回调,但是蓝牙设备没有收到数据包
bug描述:
1、app先使用uni.onBLECharacteristicValueChange监听蓝牙特征值变化,然后调用uni.notifyBLECharacteristicValueChange开启特征值监听
uni.notifyBLECharacteristicValueChange({
deviceId: deviceId, // 设备id
serviceId: serviceId, // 监听指定的服务
characteristicId: characteristicId, // 监听对应的特征值
state: true,
success(res) {
resolve(res)
},
fail(err) {
reject(err)
}
})
2、蓝牙设备会以5s每条发送notify数据
3、app可以成功监听到特征值变化
4、app使用uni.writeBLECharacteristicValue(这里已经延时1s)发送消息,蓝牙设备出现偶尔可以成功收到数据,大概率数据丢失
uni.writeBLECharacteristicValue({
deviceId,
serviceId,
characteristicId,
value: buffer,
writeType: 'write',
success(res) {
resolve(res)
console.log(res)
},
fail(err) {
console.log(err)
reject(err)
}
})
5、app即使发送了消息,蓝牙设备没有收到,uni.writeBLECharacteristicValue也是走了succes回调
注:蓝牙设备已经主动修改mtu为最大值,且能成功接收到完整数据包
2 个回复
1***@qq.com
请问解决了吗 我这里也碰到了相同问题
3***@qq.com
请问解决了吗 我也遇到了类似的问题。在安卓APP上使用uni.writeBLECharacteristicValue写入数据成功,但是设备没有对应的操作。而在小程序上则是可以正常操作