小程序开发API之蓝牙

wx.startBluetoothDevicesDiscovery(Object object)

开始搜寻附近的蓝牙外围设备。此操作比较耗费系统资源,请在搜索并连接到设备后调用 wx.stopBluetoothDevicesDiscovery 方法停止搜索。
参数Object小程序开发API之蓝牙_第1张图片

错误小程序开发API之蓝牙_第2张图片

示例代码

// 以微信硬件平台的蓝牙智能灯为例,主服务的 UUID 是 FEE7。传入这个参数,只搜索主服务 UUID 为 FEE7 的设备
wx.startBluetoothDevicesDiscovery({
  services: ['FEE7'],
  success(res) {
    console.log(res)
  }
})

wx.stopBluetoothDevicesDiscovery(Object object)

停止搜寻附近的蓝牙外围设备。若已经找到需要的蓝牙设备并不需要继续搜索时,建议调用该接口停止蓝牙搜索。
**参数Object **小程序开发API之蓝牙_第3张图片

错误小程序开发API之蓝牙_第4张图片

示例代码

wx.stopBluetoothDevicesDiscovery({
  success(res) {
    console.log(res)
  }
})

wx.openBluetoothAdapter(Object object)

初始化蓝牙模块
**参数Object **小程序开发API之蓝牙_第5张图片

错误小程序开发API之蓝牙_第6张图片

注意

  • 其他蓝牙相关 API 必须在 wx.openBluetoothAdapter 调用之后使用。否则 API 会返回错误(errCode=10000)。
  • 在用户蓝牙开关未开启或者手机不支持蓝牙功能的情况下,调用 wx.openBluetoothAdapter 会返回错误(errCode=10001),表示手机蓝牙功能不可用。此时小程序蓝牙模块已经初始化完成,可通过 wx.onBluetoothAdapterStateChange 监听手机蓝牙状态的改变,也可以调用蓝牙模块的所有API。

示例代码

wx.openBluetoothAdapter({
  success(res) {
    console.log(res)
  }
})

wx.onBluetoothDeviceFound(function callback)

监听寻找到新设备的事件
参数
function callback
寻找到新设备的事件的回调函数
参数Object res
在这里插入图片描述

devices 的结构小程序开发API之蓝牙_第7张图片

注意

  • 若在 wx.onBluetoothDeviceFound 回调了某个设备,则此设备会添加到 wx.getBluetoothDevices 接口获取到的数组中。

示例代码

// ArrayBuffer转16进度字符串示例
function ab2hex(buffer) {
  const hexArr = Array.prototype.map.call(
    new Uint8Array(buffer),
    function (bit) {
      return ('00' + bit.toString(16)).slice(-2)
    }
  )
  return hexArr.join('')
}
wx.onBluetoothDeviceFound(function (devices) {
  console.log('new device list has founded')
  console.dir(devices)
  console.log(ab2hex(devices[0].advertisData))
})

wx.onBluetoothAdapterStateChange(function callback)

监听蓝牙适配器状态变化事件
参数
function callback
蓝牙适配器状态变化事件的回调函数
参数Object res
小程序开发API之蓝牙_第8张图片

示例代码

wx.onBluetoothAdapterStateChange(function (res) {
  console.log('adapterState changed, now is', res)
})

wx.getConnectedBluetoothDevices(Object object)
根据 uuid 获取处于已连接状态的设备。
**参数Object **小程序开发API之蓝牙_第9张图片

object.success 回调函数参数 res在这里插入图片描述

res.devices 的结构
小程序开发API之蓝牙_第10张图片

错误小程序开发API之蓝牙_第11张图片

示例代码

wx.getConnectedBluetoothDevices({
  success(res) {
    console.log(res)
  }
})

wx.getBluetoothDevices(Object object)

获取在蓝牙模块生效期间所有已发现的蓝牙设备。包括已经和本机处于连接状态的设备。
参数Object小程序开发API之蓝牙_第12张图片

object.success 回调函数参数res在这里插入图片描述

res.devices 的结构小程序开发API之蓝牙_第13张图片

错误小程序开发API之蓝牙_第14张图片

示例代码

// ArrayBuffer转16进度字符串示例
function ab2hex(buffer) {
  const hexArr = Array.prototype.map.call(
    new Uint8Array(buffer),
    function (bit) {
      return ('00' + bit.toString(16)).slice(-2)
    }
  )
  return hexArr.join('')
}
wx.getBluetoothDevices({
  success(res) {
    console.log(res)
    if (res.devices[0]) {
      console.log(ab2hex(res.devices[0].advertisData))
    }
  }
})

注意事项

  • 该接口获取到的设备列表为蓝牙模块生效期间所有搜索到的蓝牙设备,若在蓝牙模块使用流程结束后未及时调用 wx.closeBluetoothAdapter 释放资源,会存在调用该接口会返回之前的蓝牙使用流程中搜索到的蓝牙设备,可能设备已经不在用户身边,无法连接。
  • 蓝牙设备在被搜索到时,系统返回的 name 字段一般为广播包中的 LocalName 字段中的设备名称,而如果与蓝牙设备建立连接,系统返回的 name 字段会改为从蓝牙设备上获取到的 GattName。若需要动态改变设备名称并展示,建议使用 localName 字段。

wx.getBluetoothAdapterState(Object object)

获取本机蓝牙适配器状态。
**参数Object **小程序开发API之蓝牙_第15张图片

object.success 回调函数参数res小程序开发API之蓝牙_第16张图片

错误小程序开发API之蓝牙_第17张图片

示例代码

wx.getBluetoothAdapterState({
  success(res) {
    console.log(res)
  }
})

wx.closeBluetoothAdapter(Object object)

关闭蓝牙模块。调用该方法将断开所有已建立的连接并释放系统资源。建议在使用蓝牙流程后,与 wx.openBluetoothAdapter 成对调用。
参数Object小程序开发API之蓝牙_第18张图片

错误小程序开发API之蓝牙_第19张图片

示例代码

wx.closeBluetoothAdapter({
  success(res) {
    console.log(res)
  }
})





你可能感兴趣的:(ONE,PIECE--小程序,ONE,PIECE--小程序)