在android等效功能代码,接受一个蓝牙指纹仪的图片,大概只需要一两秒。但是使用uniapp开发,调用uni.onBLECharacteristicValueChange(function(event) 监听特征值,大概需要10秒钟,图片数据大小为36,864byte,当然传递肯定是分多次传递的,想知道uniapp底层是怎么处理的,有没有预留其他方法或者接口进行提速~
![q***@163.com](https://img-cdn-tc.dcloud.net.cn/account/identicon/cab2ee8535d35e4bff7470296ae96cd7.png)
q***@163.com
- 发布:2024-08-01 16:17
- 更新:2024-08-01 18:48
- 阅读:199
![q***@163.com](https://img-cdn-tc.dcloud.net.cn/account/identicon/cab2ee8535d35e4bff7470296ae96cd7.png)
q***@163.com (作者)
啊 解决了,大家有遇到类似的可以试试,原来,不能连接成功后立刻调用~~~ 要延迟一点在调用,
// 修改蓝牙MTU值
setTimeout(function() {
uni.setBLEMTU({
deviceId: item.deviceId,
mtu: 512,
success(res) {
console.log('设置成功', res)
},
fail(err) {
console.log('设置失败', err)
}
})
}, 600)
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