收藏
回答

wx.writeBLECharacteristicValue回调延迟非常严重?

setTimeout(() => {
      console.log(`开始写入${packet.index + 1}/${packet.total}包`);
      wx.writeBLECharacteristicValue({
        deviceId: deviceId,
        serviceId: serviceId,
        characteristicId: characteristicId,
        value: packet.chunk, //数据格式
        success: () => {
          console.log(
            `写入第 ${packet.index + 1}/${packet.total} 包成功`,
            that.ab2str(packet.chunk)
          );
          // 模拟写入间隔,避免过快导致丢包
          setTimeout(() => {
            // 如果是最后一个包,则完成整个写入操作
            if (packet.index === packet.total - 1) {
              //wx.hideLoading();
              packet.resolve();
            }
            that.processWriteQueue(deviceId, serviceId, characteristicId);
          }, 5);
        },
        fail: (err) => {
          wx.hideLoading();
          console.error(
            `写入第 ${packet.index + 1}/${packet.total} 包失败`,
            err
          );
          packet.reject(err);
          that.setData({
            writing: false,
          });
        },
      });
    }, 5);


在华为mate70 pro上 harmonyos版本4.30上写入蓝牙数据会经常延迟15S秒以上

console.log(`开始写入${packet.index + 1}/${packet.total}包`
这里执行了,但是回调的success延迟15秒以上回复,而后会很快的把队列的数据一把全发出去,过一会又这样无限循环


设备收包对比

最后一次编辑于  2025-08-29
回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    2025-08-29

    是只有安卓复现吗?麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,提供一下微信号,时间点

    2025-08-29
    有用
    回复 3
    • 咪咪
      咪咪
      2025-08-29
      日志上传了,只有这一台机器复现,华为meta70pro,系统是harmonyos 4.30,微信号是wxid_re49k5k5ry4d22,时间点在14点-15点20之间都有出现
      2025-08-29
      回复
    • 咪咪
      咪咪
      2025-08-29
      2025-08-29
      回复
    • 咪咪
      咪咪
      2025-09-02
      请问有什么结果没
      2025-09-02
      回复
  • 咪咪
    咪咪
    2025-08-29

    如果是不回调都好排查,关键是也不报错,光延迟

    2025-08-29
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    2025-08-29
    有用
    回复 1
    • 咪咪
      咪咪
      2025-08-29
      请人工来回答
      2025-08-29
      回复
登录 后发表内容