问题:
wx.onBluetoothDeviceFound 安卓机第一次可以连接蓝牙设备,第二次搜索不到问题
原因:
wx.onBluetoothDeviceFound这个方法只能找到新的蓝牙设备,之前连接过的在部分安卓机型上,不算做新的蓝牙设备,因此重新连接搜索不到
解决办法:
方法①
关闭蓝牙连接,也要关闭蓝牙设备,否则安卓下再次进入会搜索不到设备,除非关闭小程序进程再进才可以,IOS不受影响
wx.closeBLEConnection({
deviceId: 连接的deviceId,
success(res) {
},
fail(res) {
}
})
wx.closeBluetoothAdapter({
success(res){
},
fail(res){
}
})
方法②
调用 wx.getBluetoothDevices 这个方法,查找已经添加过的蓝牙设备
官网文档
wx.getBluetoothDevices({
success: function(res) {
res.devices.forEach(device => {
console.log("蓝牙名:" + device.name)
if (device.name == that.data.blueName || device.localName == that.data.blueName) {
that.setData({
deviceId: device.deviceId
})
that.connectBle(device.deviceId); //蓝牙连接
}
let item = that.data.devices;
let len = item.length;
for (let i = 0; i < len; i++) {
for (let j = 0; j < len - 1 - i; j++) {
if (Math.abs(item[j].device_RSSI) > Math.abs(item[j + 1].device_RSSI)) {
let temp = item[j + 1];
item[j + 1] = item[j];
item[j] = temp;
}
}
}
});
},
fail: function() {
console.log("搜索蓝牙设备失败")
}
});
来源:CSDN
作者:牛哞哞杂记
链接:https://blog.csdn.net/qq_40558766/article/details/103928782