Mark
openBluetoothAdapter部分机型无响应- 当前 Bug 的表现(可附上截图) 开发版在所有机型运行正常,体验版在iphone6s和7上面调用openBluetoothAdapter接口无响应,在其他型号iPhone和安装机型正常 - 提供一个最简复现 Demo wx.openBluetoothAdapter({ success: (res) => { util.log('openBluetoothAdapter success:' + JSON.stringify(res)) }, fail: (res) => { util.log('openBluetoothAdapter fail:' + JSON.stringify(res)) } })
2019-05-291、我用的双模蓝牙,经典蓝牙连接着时,小程序连接BLE就会这样,经典蓝牙不连接时,没有问题,用Nrf Connect来测试,也没有问题; 2、复现问题用官方提供的Demo就可以,https://github.com/wechat-miniprogram/miniprogram-demo/issues/15#issue-449040236
低功耗蓝牙wx.getBLEDeviceServices接口问题- 当前 Bug 的表现(可附上截图) 使用wx.createBLEConnection连接BLE设备后,接着使用wx.getBLEDeviceServices获取服务UUID,获取服务UUID有时候会报错,errCode为:10004(no service),重新调用wx.getBLEDeviceServices接口还是报同样的错误,如果去调用wx.createBLEConnection重新连接设备,会报错,errCode为:-1(already connected) - 预期表现 wx.createBLEConnection连接设备后,wx.getBLEDeviceServices获取服务UUID应该成功 - 复现路径 - 提供一个最简复现 Demo createBLEConnection: function (deviceId){ wx.createBLEConnection({ deviceId: deviceId, success: (res) => { console.log("createBLEConnection success: ", res) this.getBLEDeviceServices(deviceId) }, fail: (res) => { console.error("createBLEConnection fail: ", res) if (res.errCode == -1){ this.getBLEDeviceServices(deviceId) } else { wx.showModal({ title: '提示', content: '连接失败,请稍后重试!', showCancel: false }) } } }) } getBLEDeviceServices: function (deviceId) { wx.getBLEDeviceServices({ deviceId, success: (res) => { for (let i = 0; i < res.services.length; i++) { if (res.services[i].isPrimary) { let serviceId = res.services[i].uuid wx.getBLEDeviceCharacteristics({ deviceId, serviceId, success: (res) => { console.log('getBLEDeviceCharacteristics success: ', res.characteristics) }, fail: (res) => { console.error('getBLEDeviceCharacteristics failed: ', res) } }) return } } }, fail: (res) => { console.error("getBLEDeviceServices failed: ", res) if (res.errCode == 10004){ wx.showLoading({ title: '设备连接出错,自动重连中', }) setTimeout(() => { let _deviceId = deviceId this.createBLEConnection(_deviceId) //this.getBLEDeviceServices(_deviceId) }, 1000) } } }) }
2019-05-27蓝牙4.0协议里面BLE一次只能发20字节,但蓝牙4.2以后,一次发送的字节数已经扩展到了251字节,小程序需要同步更新啊; 另外BLE的定位就是低功耗,自然吞吐量小,又想让马儿跑,又不让马儿吃饱,办不到的。。。
能否提供设定BLE MTU size的API接口?- 需求的场景描述(希望解决的问题) 在Android装置上,传送与接收数据都被限制在20 bytes,若超过限制大小,程序将不会正常运作。但若限制在20 bytes,在有大量资料需要从蓝牙装置传到小程序的情境下,又会有太长的传输时间。 - 希望提供的能力 希望能够提供设定MTU size的API接口,让开发人员能够依照各自的蓝牙装置设定适合的MTU size。
2019-03-06