ddpapa
ddpapa
  • 发布:2023-07-04 10:07
  • 更新:2023-08-28 14:06
  • 阅读:346

低功耗蓝牙监听特征值变化后,向设备写入数据大概率失败

分类:uni-app

ble监听设备发来数据的同时向设备write写入数据会失败!!!!
问题出现场景:
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为最大值,且能成功接收到完整数据包

2023-07-04 10:07 负责人:DCloud_Android_zl 分享
已邀请:
1***@qq.com

1***@qq.com

请问bug解决了吗

  • ddpapa (作者)

    硬件佬的问题,不晓得调了什么东西,可以100%收到了

    2023-08-28 17:09

要回复问题请先登录注册