2***@qq.com
2***@qq.com
  • 发布:2024-04-03 14:48
  • 更新:2024-07-18 18:14
  • 阅读:262

【报Bug】onBLECharacteristicValueChange 在写入后 会逐渐增加监听值

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 19045.4170

HBuilderX类型: 正式

HBuilderX版本号: 4.08

手机系统: Android

手机系统版本号: Android 14

手机厂商: 小米

手机机型: 小米13Ultra

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
uni.writeBLECharacteristicValue({  
    deviceId: t.w_deviceId,  
    serviceId: t.w_serviceId,  
    characteristicId: t.w_characteristicId,  
    value: n,  
    success: function(e) {  
    console.log('写入成功');  

          uni.onBLECharacteristicValueChange((function(e) {  
                console.log('e.characteristicId', e.characteristicId);  
                if (e.characteristicId == t.n_CharacteristicId) {  
                  ...  
                }  
          }))  
    },  
        fail: function(t) {  
        console.log('向低功耗蓝牙设备指定特征值写入二进制数据', t);  
    }  
})

操作步骤:

通过writeBLECharacteristicValue写入二进制数据
通过onBLECharacteristicValueChange监听特征值变化事件

预期结果:

每次写入,监听的值只出现一次

实际结果:

每次写入,监听会累加

特此说明:

小程序并不会出现这种问题,一切正常,只在安卓app上出现了(目前只测试了安卓)

bug描述:

在使用writeBLECharacteristicValue 向低功耗蓝牙设备指定特征值写入二进制数据后
通过onBLECharacteristicValueChange监听低功耗蓝牙设备的特征值变化事件
如图2
在安卓app上会重复监听并累加。
第一次只有一个值,第二次会出现两次,。。。
如图1
在小程序上没有出现这种问题

2024-04-03 14:48 负责人:无 分享
已邀请:
嗨哆嚒

嗨哆嚒 - 嗨哆嚒

你每次写入都注册了一次onBLECharacteristicValueChange

  • 468

    我也遇到这个问题,大佬有解决办法吗?

    2024-08-07 16:51

  • 嗨哆嚒

    回复 rooanlee: 把这段代码放外面,只调用一次。

    2024-08-13 17:26

l***@163.com

l***@163.com - 测试

谁有解决方案?

要回复问题请先登录注册