收藏
回答

wx.setBLEMTU设置的mtu超过设备端的mtu后,会直接报错

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.setBLEMTU 微信安卓客户端 7.0.16.1700 2.11.3

https://developers.weixin.qq.com/miniprogram/dev/api/device/bluetooth-ble/wx.setBLEMTU.html

手机型号是华为Mate 30 Pro 5G,

设置蓝牙连接MTU的功能在安卓SDK中叫做 "交换MTU",就是手机跟设备进行MTU的交换,取两者的最小值返回。

MTU使用的时候,一般都是设置一个最大的MTU值比如512。在MTU交换成功后,我就能得到设备端支持的MTU。在后续的传输中,单次传输限制在MTU字节内。

而微信的wx.setMTU功能,当设置值超过设备支持的MTU大小时,会直接返回-1错误,没办法拿到设备的MTU,而设置值小于等于设备MTU时,只返回成功。结果中也没有当前的MTU值。

经过验证,当设置值比设备支持的MTU大1的时候就失败了,等于和小于都能成功。

这个问题可能是接口设计的问题,目前需要用到此功能提升蓝牙传输速率,希望能更新和解决!

最后一次编辑于  07-01
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容
问题标签