4、搜索蓝牙设备(startBluetoothDevicesDiscovery)

wx.startBluetoothDevicesDiscovery(Object object)

基础库 1.1.0 开始支持,低版本需做兼容处理

开始搜寻附近的蓝牙外围设备。此操作比较耗费系统资源,请在搜索并连接到设备后调用 wx.stopBluetoothDevicesDiscovery 方法停止搜索。

参数

Object object

属性类型默认值必填说明
servicesArray.<string> 要搜索的蓝牙设备主 service 的 uuid 列表。某些蓝牙设备会广播自己的主 service 的 uuid。如果设置此参数,则只搜索广播包有对应 uuid 的主服务的蓝牙设备。建议主要通过该参数过滤掉周边不需要处理的其他蓝牙设备。
allowDuplicatesKeybooleanfalse是否允许重复上报同一设备。如果允许重复上报,则 wx.onBlueToothDeviceFound 方法会多次上报同一设备,但是 RSSI 值会有不同。
intervalnumber0上报设备的间隔。0 表示找到新设备立即上报,其他数值根据传入的间隔上报。
successfunction 接口调用成功的回调函数
failfunction 接口调用失败的回调函数
completefunction 接口调用结束的回调函数(调用成功、失败都会执行)

 

lanyatest.wxml代码:

<!--pages/lanyatest/lanyatest.wxml-->
<view class="contentview">

  <view  class='myview' >
    
      {{info}}
    

  </view>

  <button type="primary" class="button" bindtap="lanyatest1">1初始化蓝牙</button>
  <button type="primary" class="button" bindtap="lanyatest2">2获取蓝牙状态</button>
  <button type="primary" class="button" bindtap="lanyatest3">3搜索周边设备</button>
</view>

 

lanyatest.js代码:

// pages/lanyatest/lanyatest.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    info:"未初始化蓝牙适配器"
  },

  lanyatest1(event){
    var that = this;
    wx.openBluetoothAdapter({
      success: function (res) {
        console.log('初始化蓝牙适配器成功')
        //页面日志显示
        that.setData({
          info: '初始化蓝牙适配器成功'
        })
      },
      fail: function (res) {
        console.log('请打开蓝牙和定位功能')
        that.setData({
          info: '请打开蓝牙和定位功能'
        })
      }
    })
  },



  lanyatest2(event){
    var that = this;
    wx.getBluetoothAdapterState({

      success: function (res) {

        //打印相关信息
        console.log(JSON.stringify(res.errMsg) + "\n蓝牙是否可用:" + res.available);

        that.setData({
          info: JSON.stringify(res.errMsg) +"\n蓝牙是否可用:" + res.available
        })

      },
      fail: function (res) {

        //打印相关信息
        console.log(JSON.stringify(res.errMsg) + "\n蓝牙是否可用:" + res.available);

        that.setData({
          info: JSON.stringify(res.errMsg) + "\n蓝牙是否可用:" + res.available
        })

      }
      
    })

  },



  lanyatest3(event){
    var that = this;
    wx.startBluetoothDevicesDiscovery({
      //services: ['180A'], //如果填写了此UUID,那么只会搜索出含有这个UUID的设备,建议一开始先不填写
      success: function (res) {
        that.setData({
          info: "搜索设备" + JSON.stringify(res),
        })
        console.log('搜索设备返回' + JSON.stringify(res))

      }
    })

  },


//我删除了自动生成的生命周期函数

})

lanyatest.wxss代码:

/* pages/lanyatest/lanyatest.wxss */
.vertical{
  display: flex;
  flex-direction: column;
}

/**index.wxss**/
.horizontal{
  display: flex;
  flex-direction: row;
}

.btinfo{
  height:100px;
}

.contentview {
margin: 0 10px;
}
 
.button {
margin: 5px;
}

.myview{
  height:200px;
  word-break:break-all;/* 自动换行 */
}

真机调试结果:

 

开发心得:

    记得更新一下WXSS文件,更新了心得属性,否则文本显示不完全

    如果搜索不到蓝牙设备,请查看定位服务和微信定位权限是否打开,如果填写了lanyatest3中的services参数,建议注释掉之后重新运行

 

 

在微信小程序中,要搜索BLE蓝牙设备,你可以使用微信小程序的蓝牙API来实现。以下是搜索BLE蓝牙设备的一般步骤: 1. 获取蓝牙适配器:使用wx.openBluetoothAdapter()方法打开蓝牙适配器。 ```javascript wx.openBluetoothAdapter({ success: function(res) { // 蓝牙适配器打开成功 }, fail: function(res) { // 蓝牙适配器打开失败 } }) ``` 2. 监听蓝牙适配器状态变化:可以使用wx.onBluetoothAdapterStateChange()方法监听蓝牙适配器状态的变化。 ```javascript wx.onBluetoothAdapterStateChange(function(res) { console.log('蓝牙适配器状态变化', res) }) ``` 3. 开始搜索设备:使用wx.startBluetoothDevicesDiscovery()方法开始搜索BLE蓝牙设备。 ```javascript wx.startBluetoothDevicesDiscovery({ services: [], // 需要搜索的服务UUID列表,如果为空则搜索所有设备 success: function(res) { // 开始搜索设备成功 }, fail: function(res) { // 开始搜索设备失败 } }) ``` 4. 监听搜索到的设备:使用wx.onBluetoothDeviceFound()方法监听搜索到的BLE蓝牙设备。 ```javascript wx.onBluetoothDeviceFound(function(res) { var devices = res.devices; for (var i = 0; i < devices.length; i++) { var device = devices[i]; console.log('搜索到的设备', device) } }) ``` 5. 停止搜索设备:使用wx.stopBluetoothDevicesDiscovery()方法停止搜索BLE蓝牙设备。 ```javascript wx.stopBluetoothDevicesDiscovery({ success: function(res) { // 停止搜索设备成功 }, fail: function(res) { // 停止搜索设备失败 } }) ``` 通过以上步骤,你可以在微信小程序中搜索BLE蓝牙设备。记得在使用蓝牙API前,先进行适配器的打开操作,并且注意处理适配器状态变化、搜索设备成功/失败的回调函数。希望对你有帮助!如有更多问题,请继续提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值