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的时候就失败了,等于和小于都能成功。
这个问题可能是接口设计的问题,目前需要用到此功能提升蓝牙传输速率,希望能更新和解决!
确实设置大于蓝牙设备的MTU 会返回-1错误。
android 端程序设置MTU的流程,设置512,返回协商后的261.但是小程序端设置512返回-1错误,从android 端拿到261设置就成功了。但是这样也局限了MTU的设置,多款蓝牙设备,希望动态设置的。目前只能先固定261这个数字了。
请具体描述问题出现的流程,并提供能复现问题的简单代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html