q***@163.com
q***@163.com
  • 发布:2024-08-01 16:17
  • 更新:2024-08-01 18:48
  • 阅读:199

关于蓝牙特征变化事件的性能问题:uni.onBLECharacteristicValueChange(function(event)

分类:uni-app

在android等效功能代码,接受一个蓝牙指纹仪的图片,大概只需要一两秒。但是使用uniapp开发,调用uni.onBLECharacteristicValueChange(function(event) 监听特征值,大概需要10秒钟,图片数据大小为36,864byte,当然传递肯定是分多次传递的,想知道uniapp底层是怎么处理的,有没有预留其他方法或者接口进行提速~

2024-08-01 16:17 负责人:无 分享
已邀请:
Azikou

Azikou

改mtu

  • q***@163.com (作者)

    感谢大神回复,我试了下, uniapp lib库支持修改BLEMTU值来更改系统的默认值,支持设置的范围是(20,512)

    // 修改蓝牙MTU值

    uni.setBLEMTU({

    deviceId: deviceId,

    mtu: 512,

    success: (res) => {

    console.log(res);

    },

    });

    修改后,还是10秒才全部传送完,没有任何变化,我觉得是底层消息机制处理上的效率问题,通讯上可能比android多加了一些延迟或者同步的机制导致的,猜测~

    2024-08-01 17:47

q***@163.com

q***@163.com (作者)

啊 解决了,大家有遇到类似的可以试试,原来,不能连接成功后立刻调用~~~ 要延迟一点在调用,

// 修改蓝牙MTU值  
                    setTimeout(function() {  
                        uni.setBLEMTU({  
                            deviceId: item.deviceId,  
                            mtu: 512,  
                            success(res) {  
                                console.log('设置成功', res)  
                            },  
                            fail(err) {  
                                console.log('设置失败', err)  
                            }  
                        })  
                    }, 600)

要回复问题请先登录注册