小程序
小游戏
企业微信
微信支付
扫描小程序码分享
1.部分华为和vivo机型协商MTU值调用失败,使用wx.getBLEMTU获取到的值为203(未设置MTU前为23),但是接收数据只有20字节。
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
// 创建连接
wx.createBLEConnection({
deviceId: deviceId,
timeout: 10000,
success: function (res) {
var sys = wx.getSystemInfoSync();
if (sys.platform == "android") {
let deviceMTU = 0;
wx.getBLEMTU({
success(res) {
deviceMTU = res.mtu;
},
fail(e) {
console.log(`获取设备MTU值失败${e.errCode} ${e.errMsg}`);
}
});
// 小200就设置
if (deviceMTU < 200) {
wx.setBLEMTU({
mtu: 200,
console.log("修改设备MTU值成功:" + res.mtu);
console.log(`修改设备MTU值失败:${e.mtu}-${e.errCode} ${e.errMsg}`);
// 获取服务
that.addFail("创建连接失败: " + e.errCode + e.errMsg);
})
同问,相同的代码逻辑,在一些手机可以设置成功MTU,在个别手机就设置失败。
uni.setBLEMTU({ deviceId: deviceId, mtu: 160, success(res) { console.log('setBLEMTU:',res); uni.getBLEDeviceCharacteristics({ deviceId:deviceId, serviceId: '0000FFF0-0000-1000-8000-00805F9B34FB', success(res) { console.warn("获取需要监听的特征值:",res); // 获取到特征值后立即对指定特征值进行监听 uni.notifyBLECharacteristicValueChange({ characteristicId: '0000FFFE-0000-1000-8000-00805F9B34FB', deviceId: deviceId, serviceId: '0000FFF0-0000-1000-8000-00805F9B34FB', state: true, success(res) { console.log('监听特征值成功:',res); }, fail(res) { console.log('监听特征值失败:',res); } }) },fail(res) { console.warn("获取需要监听的特征值失败:",res); } }) },
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
// 创建连接
wx.createBLEConnection({
deviceId: deviceId,
timeout: 10000,
success: function (res) {
var sys = wx.getSystemInfoSync();
if (sys.platform == "android") {
let deviceMTU = 0;
wx.getBLEMTU({
deviceId: deviceId,
success(res) {
deviceMTU = res.mtu;
},
fail(e) {
console.log(`获取设备MTU值失败${e.errCode} ${e.errMsg}`);
}
});
// 小200就设置
if (deviceMTU < 200) {
wx.setBLEMTU({
deviceId: deviceId,
mtu: 200,
success(res) {
console.log("修改设备MTU值成功:" + res.mtu);
},
fail(e) {
console.log(`修改设备MTU值失败:${e.mtu}-${e.errCode} ${e.errMsg}`);
}
});
}
}
// 获取服务
},
fail(e) {
that.addFail("创建连接失败: " + e.errCode + e.errMsg);
}
})
同问,相同的代码逻辑,在一些手机可以设置成功MTU,在个别手机就设置失败。
uni.setBLEMTU({ deviceId: deviceId, mtu: 160, success(res) { console.log('setBLEMTU:',res); uni.getBLEDeviceCharacteristics({ deviceId:deviceId, serviceId: '0000FFF0-0000-1000-8000-00805F9B34FB', success(res) { console.warn("获取需要监听的特征值:",res); // 获取到特征值后立即对指定特征值进行监听 uni.notifyBLECharacteristicValueChange({ characteristicId: '0000FFFE-0000-1000-8000-00805F9B34FB', deviceId: deviceId, serviceId: '0000FFF0-0000-1000-8000-00805F9B34FB', state: true, success(res) { console.log('监听特征值成功:',res); }, fail(res) { console.log('监听特征值失败:',res); } }) },fail(res) { console.warn("获取需要监听的特征值失败:",res); } }) },