9***@qq.com
9***@qq.com
  • 发布:2021-05-20 17:28
  • 更新:2024-09-23 16:58
  • 阅读:1952

【报Bug】uni.setBLEMTU 不能生效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.1.15

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: 红米K30

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

createConnectdo: function(deviceid) {
let self = this
uni.showLoading({
title: "正在链接..."
})
uni.createBLEConnection({
deviceId: deviceid,
success: function(res) {
console.log(res)
uni.setBLEMTU({
deviceId: deviceid,
mtu: 312,
success: (res) => {
console.log(res)
},
fail: (error) => {
console.log(error)
}
})
self.stopBluetoothDevicesDiscovery()
self.getBluetoothDevicesServices(deviceid)

                    // self.getBledeviceCharateristics(self.blueList[index])  
                },  
                fail: function(res) {  
                    console.log("error", res)  
                    uni.closeBLEConnection({  
                        deviceId: deviceid,  
                        success: function(res) {  
                            self.createConnectdo(deviceid)  
                        }  
                    })  
                }  
            })  
        },

预期结果:

设置uni.setBLEMTU 后可以传输大于20个字节的数据

实际结果:

只能发送20个字节的数据

bug描述:

uni.setBLEMTU 根本不生效 这个问题到底怎么解决? 请官方能尽快看看这个函数吗

2021-05-20 17:28 负责人:DCloud_App_Array 分享
已邀请:
牛牛2021

牛牛2021

解决了吗?有遇到这个问题了吗?

9***@qq.com

9***@qq.com - hello worid

连接成功后不要立即调, 加个2s延时就好了

2***@qq.com

2***@qq.com

连接成功后,延迟一秒调用
setTimeout(function(){
uni.setBLEMTU({
deviceId:that.deviceId,
mtu:30,
success(res) {
console.log('设置成功', res)
},
fail(err) {
console.log('设置失败', err)
}
})
},1000)

2***@qq.com

2***@qq.com

连接成功后,延迟一秒调用

setTimeout(function(){  
    uni.setBLEMTU({  
                    deviceId:that.deviceId,  
                    mtu:30,  
                    success(res) {  
                        console.log('设置成功', res)  
                    },  
                    fail(err) {  
                        console.log('设置失败', err)  
                    }  
                })  
},1000)
7***@qq.com

7***@qq.com

为什么我加了延迟也不行,还是报错:setBLEMTU:fail:internal error

 // 蓝牙MTU设置  
  setBLEMTU(deviceId) {  

    setTimeout(() => {  
      uni.setBLEMTU({  
        deviceId: deviceId,  
        mtu: 512,  
        success(res) {  
          console.log("mtu设置成功!ccccc", res);  
          //console.log(res);  
        },  
        fail(err) {  
          console.log("mtu设置失败:ccccc", err);  
          //console.log(err);  
          var ret = '{"code":1,"msg": "蓝牙MTU设置失败"}';  
          return ret;  
        },  
      })  
    }, 2000)  
  }
  • 2***@qq.com

    这个时间并不是固定两秒,也可以适当的延长点,还有就是iOS的没有这个

    2024-06-29 15:02

8***@qq.com

8***@qq.com

我链接蓝牙成功后加了十秒延迟,返回成功了,但是实际还是没生效,发送超过20个字节的数据硬件收到还是20个字节,手机上的蓝牙调试助手是没问题的

要回复问题请先登录注册