ios无法设置mtu,所以超过20字节报错,
wx.setBLEMTU({
deviceId: deviceId2,
mtu: 153,
success(res3) {
console.log("设置mtu成功", res3);
wx.getBLEMTU({
deviceId: deviceId2,
success: (res4) => {
console.log(
"安卓获取设备的MTU值为",
res4.mtu
);
},
fail: (error) => {
console.error(
"安卓获取设备的MTU值失败",
error
);
}
});
},
fail(error) {
console.log("设置mtu失败", error);
wx.getBLEMTU({
deviceId: deviceId2,
success: (res3) => {
console.log(
"苹果获取设备的MTU值为",
res3.mtu
);
},
fail: (error2) => {
console.error(
"苹果获取设备的MTU值失败",
error2
);
}
});
}
});
此函数写在createBLEConnectiond成功之后
setBLEMTU的callback里会带mtu的值,开发者可以以这个为准,如果基于这个写入还有问题辛苦上传下日志 在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,提供微信号,时间点
蓝牙这里一直是痛点 之前我是用小程序 后来无奈没办法只能开发APP,使用小程序蓝牙有些机型会导致不兼容造成无法联通得情况太多了
之前是用20年的方法 每包分20字节 但是数据包有80kb 导致 升级完成 大概7分钟和5分钟(ios可以每次大包为200字节,安卓只能150字节,分成20字节每小包),后来了解到有可以调节mtu所以使用,但是设置成功之后 也无法单小包超过20字节