小程序 wx.onBluetoothDeviceFound 安卓机第一次可以连接蓝牙设备,第二次搜索不到问题

邮差的信 提交于 2020-01-28 07:52:20

问题:
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("搜索蓝牙设备失败")
      }
    });
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!