- 发布:2024-05-28 10:54
- 更新:2024-07-30 18:08
- 阅读:207
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 4.15
手机系统: 全部
手机厂商: 华为
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
操作步骤:
连接蓝牙,设置onBLECharacteristicValueChange 监听,发送数据,断开低功耗蓝牙,关闭蓝牙模块。
第二次
连接蓝牙,设置onBLECharacteristicValueChange 监听,发送数据
连接蓝牙,设置onBLECharacteristicValueChange 监听,发送数据,断开低功耗蓝牙,关闭蓝牙模块。
第二次
连接蓝牙,设置onBLECharacteristicValueChange 监听,发送数据
预期结果:
第二次发送数据时候,onBLECharacteristicValueChange 收到硬件发送的一次数据
第二次发送数据时候,onBLECharacteristicValueChange 收到硬件发送的一次数据
实际结果:
第二次发送数据时候,onBLECharacteristicValueChange 收到硬件发送的两次数据,随着多次执行上述复现步骤,onBLECharacteristicValueChange 会收到多次数据
第二次发送数据时候,onBLECharacteristicValueChange 收到硬件发送的两次数据,随着多次执行上述复现步骤,onBLECharacteristicValueChange 会收到多次数据
bug描述:
在链接硬件设备的时候
每次链接都会使用
uni.onBLECharacteristicValueChange((resChange) => {
let val = ab2hex(resChange.value);
takeData(val);
})
来监听回调
连接蓝牙流程中,每次连接都会重新触发一次以上函数,断开蓝牙服务的api也没有销毁这类监听
小马蹄
有效的,大伙估计都是看文档
必须先启用 notifyBLECharacteristicValueChange 接口才能接收到设备推送的 notification
误以为是 必须先启用 notifyBLECharacteristicValueChange 接口再启用onBLECharacteristicValueChange2024-09-04 09:14