- 突然性的蓝牙搜索不到设备 uni.onBluetoothDeviceFound() ?
uni.onBluetoothDeviceFound(); 上星期都还可以搜索的到蓝牙设备,为啥今天同样的代码该api不返回任何蓝牙设备数据?
2022-09-19 - 部分安卓手机调用onBluetoothDeviceFound为什么获取不到回调?
uni.startBluetoothDevicesDiscovery({ complete (e) { console.log(e) if (e.errMsg == "startBluetoothDevicesDiscovery:ok") { uni.onBluetoothDeviceFound(devices => { console.log(devices) if(!_this.devices.length) return _this.devices.push(devices.devices[0]) let index = 0 let state = true _this.devices.forEach((key, i) => { if(key.deviceId == devices.devices[0].deviceId) { state = false index = i } }) if(state) { _this.devices.push(devices.devices[0]) } else { _this.devices[index] = devices.devices[0] } }) } } }) 1,iOS系统能正常执行回调 (iPhone 13,iPhone 11) 2,鸿蒙系统也能正常执行回调 (荣耀 X10) 3,部分安卓手机无法执行回调 (小米 12s Ultra) [图片][图片][图片]
2022-10-12 - Android12红米机型不触发onBluetoothDeviceFound回调?
startBluetoothDevicesDiscovery输出了success回调的信息,之后控制台没有任何输出和报错,推测是onBluetoothDeviceFound没有回调 目前只有两台客户手机有这个情况,都是Android12红米,正常在系统蓝牙进行搜索无问题 —— 1、微信版本 8.0.22 系统版本Android 12 手机型号Redmi M2012K11AC;2、微信版本 8.0.27 系统版本Android 12 手机型号Redmi 22041216C let find = false let second = new Date().getTime() let begin = new Date().getTime() wx.onBluetoothDeviceFound(bres => { if (find) return console.log('搜索到未保存蓝牙设备', bres.devices[0]) const now = new Date().getTime() // 每2s上报一次蓝牙搜索的列表 if (now - second >= 2000) { // 上报操作 second = now } const deviceName = '111' // 硬件蓝牙名称 // if (bres.devices[0].name === deviceName || bres.devices[0].localName === deviceName) { // 上报操作 console.log('匹配到蓝牙设备', deviceName) find = true // 匹配成功后关闭蓝牙搜索 wx.stopBluetoothDevicesDiscovery({ success: res => { console.log('关闭蓝牙搜索成功', res) } }) // 进行后续操作 return } // 超过10s,搜索超时 if (now - begin >= 10000) { find = true // 停止后续回调的动作,并非真的找到 wx.stopBluetoothDevicesDiscovery({ success: res => { console.log('关闭蓝牙搜索成功', res) } }) } }) wx.startBluetoothDevicesDiscovery({ allowDuplicatesKey: false, interval: 0, success: res => { console.log('开始搜索附近的蓝牙设备', res) }, fail: res => { console.log('搜索附近的蓝牙设备失败', res) } })
2022-10-18