- 小程序写入失败,会断开蓝牙吗?
[图片] 蓝牙写入报错后,会直接断开蓝牙连接吗?写入数据包格式是24字节没办法避免。 鄙人做的是一个共享项目,需要通过蓝牙开锁关锁。 在开启 notify 之后 监听特征值变化,代码如下: [代码]openNotify(services_id) {[代码][代码] [代码][代码]let _this = [代码][代码]this[代码][代码] [代码][代码]wx.notifyBLECharacteristicValueChange({[代码][代码] [代码][代码]state: [代码][代码]true[代码][代码], [代码][代码]// 启用 notify 功能[代码][代码] [代码][代码]deviceId: [代码][代码]this[代码][代码].data.tooth_deviceId, [代码][代码]//蓝牙设备id[代码][代码] [代码][代码]serviceId: services_id, [代码][代码]//服务id[代码][代码] [代码][代码]characteristicId: [代码][代码]this[代码][代码].data.indicate_id, [代码][代码]//服务特征值indicate[代码][代码] [代码][代码]success: [代码][代码]function[代码][代码](res) {[代码][代码] [代码][代码]console.log([代码][代码]'开启notify'[代码][代码], res.errMsg)[代码][代码] [代码][代码]//监听低功耗蓝牙设备的特征值变化[代码][代码] [代码][代码]wx.onBLECharacteristicValueChange([代码][代码]function[代码][代码](res) {[代码][代码] [代码][代码]// _this.setData({[代码][代码] [代码][代码]// tooth_deviceId: res.deviceId,[代码][代码] [代码][代码]// indicate_id: res.characteristicId[代码][代码] [代码][代码]// })[代码][代码] [代码][代码]// services_id = res.serviceId[代码][代码] [代码][代码]console.log([代码][代码]'特征值变化'[代码][代码], res);[代码][代码] [代码][代码]let value = _this.ab2hex(res.value)[代码][代码] [代码][代码]console.log(value)[代码][代码] [代码][代码]if[代码][代码](value.indexOf([代码][代码]'01'[代码][代码]) > 0 && value.length === 10){[代码][代码] [代码][代码]// 告诉后台已开锁[代码][代码] [代码][代码]console.log([代码][代码]'我的锁已经开了'[代码][代码])[代码][代码] [代码][代码]// 监听关锁[代码][代码] [代码][代码]// let buffer = _this.hexStringToArrayBuffer('FF05A3011F');[代码][代码] [代码][代码]// _this.data.timer = setInterval(function(){[代码][代码] [代码][代码]// wx.writeBLECharacteristicValue({[代码][代码] [代码][代码]// deviceId: _this.data.tooth_deviceId,[代码][代码] [代码][代码]// serviceId: services_id,[代码][代码] [代码][代码]// characteristicId: _this.data.read_id,[代码][代码] [代码][代码]// value: buffer,[代码][代码] [代码][代码]// success: function(res) {[代码][代码] [代码][代码]// console.log(res)[代码][代码] [代码][代码]// // clearInterval(_this.data.timer)[代码][代码] [代码][代码]// },[代码][代码] [代码][代码]// fail:err=>{[代码][代码] [代码][代码]// console.log(err)[代码][代码] [代码][代码]// }[代码][代码] [代码][代码]// })[代码][代码] [代码][代码]// },2000)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]//写入数据[代码][代码] [代码][代码]setTimeout([代码][代码]function[代码][代码](){[代码][代码] [代码][代码]_this.writeData(services_id, [代码][代码]'FF0CA20102030405065500EF'[代码][代码])[代码][代码] [代码][代码]},1000)[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: err => {[代码][代码] [代码][代码]console.log(err)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码]在 onBLECharacteristicValueChange 中只获取到 开锁的设备回复码,没有获取到关锁的获取码。 猜想一:是不是因为在 write 的时候报错了,所以断开了蓝牙,导致无法收取到? 猜想二:onBLECharacteristicValueChange 在开锁的时候已经使用过了,需要重新开启一个? 希望大神帮助。急急急,老大的刀已经在我的脖子上了
2019-05-09 - 审核失败
- 当前 Bug 的表现(可附上截图) [图片] - 预期表现 登陆成功,编辑器、开发版以及体验版都是能够成功的。没有开启调试模式 - 复现路径 不知道官方审核人员是如何出现的 - 提供一个最简复现 Demo
2019-02-23