原生微信小程序蓝牙开发(二)

接上一篇(原生微信小程序蓝牙开发(一)

将蓝牙初始化完成后

第二步:搜索周边设备(wx.startBluetoothDevicesDiscovery)

开始搜寻附近的蓝牙外围设备。

参数

Object object

属性类型默认值必填说明
servicesArray.<string>要搜索的蓝牙设备主服务的 UUID 列表(支持 16/32/128 位 UUID)。某些蓝牙设备会广播自己的主 service 的 UUID。如果设置此参数,则只搜索广播包有对应 UUID 的主服务的蓝牙设备。建议通过该参数过滤掉周边不需要处理的其他蓝牙设备。
allowDuplicatesKeybooleanfalse是否允许重复上报同一设备。如果允许重复上报,则 wx.onBlueToothDeviceFound 方法会多次上报同一设备,但是 RSSI 值会有不同。
intervalnumber0上报设备的间隔,单位 ms。0 表示找到新设备立即上报,其他数值根据传入的间隔上报。
powerLevelstringmedium扫描模式,越高扫描越快,也越耗电。仅安卓微信客户端 7.0.12 及以上支持。
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

官方文档:wx.startBluetoothDevicesDiscovery(Object object)

下面直接上代码:

// 搜索周边
  findBlue() {
    let that = this;
    wx.startBluetoothDevicesDiscovery({
      allowDuplicatesKey: false,
      interval: 0,
      success: (res) => {
        wx.showLoading({
          title: "正在搜索设备",
        });
        // 将蓝牙设备id缓存到本地根据自己项目情况来,我这里需要缓存
        let BTdeviceId = wx.getStorageSync("BTdeviceId");
        // 第二次连接
        if (BTdeviceId) {
          // 有缓存设备id为:BTdeviceId可以直接连接
          that.connetBlue(BTdeviceId);
        } else {
          // 第一次连接,没有缓存设备id,去获取设备
          that.getBlue();
        }
      },
      fail: (res) => {
        wx.hideLoading();
        wx.showToast({
          title: "搜索周边失败",
          icon: "error",
        });
      },
    });
  },

注意:

  1. 当设备第一次连接成功后,第二次可以直接通过该蓝牙是设备id来连接,就不用通过 wx.getBluetoothDevices 再去获取设备。
  2. 缓存设备id是我这项目用到的,大家根据自身情况截取。

当搜索完成后就进行下一步——获取设备(点击直接跳转)

  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值