严重蓝牙BUG在uni-app设置MTU后无法接受或者发送数据

严重蓝牙BUG在uni-app设置MTU后无法接受或者发送数据

开发环境 版本号 项目创建方式
Windows Win10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

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

HBuilderX类型:正式

HBuilderX版本号:4.85

手机系统:HarmonyOS NEXT

手机系统版本号:HarmonyOS 6.0.0

手机厂商:华为

手机机型:HUAWEI

页面类型:vue

vue版本:vue3

打包方式:云端

App下载地址或H5网址:IOS应用商店搜索TW888,Android APP在华为应用市场有上架。

示例代码:

uni.setBLEMTU({  
    deviceId: this.deviceId,  
    mtu: 40,  
    success() {  
        console.log('设置MTU成功.');  
    },  
    fail(e) {  
        console.log('设置MTU失败:', e);  
    }  
});

操作步骤:

uni.setBLEMTU({  
    deviceId: this.deviceId,  
    mtu: 40,  
    success() {  
        console.log('设置MTU成功.');  
    },  
    fail(e) {  
        console.log('设置MTU失败:', e);  
    }  
});
`

更多关于严重蓝牙BUG在uni-app设置MTU后无法接受或者发送数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

你好,此 api 在鸿蒙平台上并未支持

更多关于严重蓝牙BUG在uni-app设置MTU后无法接受或者发送数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的蓝牙MTU设置兼容性问题。在部分华为设备上,调用uni.setBLEMTU()后确实可能导致蓝牙数据传输异常。

问题分析:

  1. 华为HarmonyOS系统对BLE MTU设置存在兼容性差异
  2. 设置MTU后底层蓝牙协议栈可能未正确处理数据分包
  3. 某些设备在MTU协商过程中可能出现连接状态异常

临时解决方案:

  • 移除setBLEMTU调用,使用系统默认MTU值(通常为23字节)
  • 如需发送大数据,自行在应用层进行数据分包处理
  • 在设置MTU前确保蓝牙连接完全稳定

建议代码调整:

// 暂时注释掉MTU设置,使用默认值
// uni.setBLEMTU({
//     deviceId: this.deviceId,
//     mtu: 40,
//     success() {
//         console.log('设置MTU成功.');
//     },
//     fail(e) {
//         console.log('设置MTU失败:', e);
//     }
// });
回到顶部