my.setblemtu(object object)
安卓 5.1 以上有效,ios 因系统限制不支持。
基础库 或更高版本; 若版本较低,建议采取 兼容处理 。
小程序开发者工具: 不支持。
主体: 企业支付宝小程序
相关文档: 蓝牙 api 概览 、 蓝牙 api 错误码对照表 、 my.connectbledevice
设置低功耗蓝牙设备的最大传输单元。
object object
查看示例
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
deviceid | string | - | 是 | 蓝牙设备 id。该 deviceid 对应的蓝牙设备需要已经通过 my.connectbledevice 建立连接 |
mtu | number | - | 是 | 最大传输单元(22,512)区间内,单位 bytes |
success | function | - | 否 | 调用成功的回调函数 |
fail | function | - | 否 | 调用失败的回调函数 |
complete | function | - | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
success 回调函数
参数
object res
属性 | 类型 | 描述 |
---|---|---|
mtu | number | 最终协商的 mtu 值,与传入参数一致 |
fail 回调的参数为 object,error
属性为错误码,errormessage
属性为错误消息。
错误码的详细信息请查看蓝牙 api 错误码对照表。
my.setblemtu axml 代码
my.setblemtu js 代码
<view>
<button ontap="setblemtu">设置设备最大传输单元button>
view>
page({
data: {
deviceid: "00:0f:0f:11:22:33",
},
setblemtu() {
my.connectbledevice({
deviceid: this.data.deviceid,
success: () => {
my.alert({ content: "连接成功" });
my.setblemtu({
deviceid: this.data.deviceid,
mtu: 100,
success: (res) => {
console.log(res, "调用成功的回调");
},
fail: (error) => {
console.log(error, "调用失败的回调");
},
});
},
fail: (error) => {
console.log(error, "连接失败");
},
});
},
});
q:入参 mtu 在(22,512)区间内,但是返回 “error:10024,errormessage:'协商失败'”是为什么?应该怎么处理?
a:
因为设备实际的最大传输单元是手机与连接的蓝牙设备两者协商出来的,当两者协商出来的最大传输单元小于入参 mtu 值时,就会返回 “error:10024,errormessage:'协商失败'”。
处理方法:fail
回调函数的参数中会返回一个 mtu
值,可以将此值传给 mtu
入参即可。