收藏本站
查看: 155|回复: 0

蓝牙适配器接口参数及实例源码4

[复制链接]
发表于 2018-2-8 09:36:48 | 显示全部楼层 |阅读模式
低功耗蓝牙接口wx.createBLEConnection(OBJECT)
基础库 1.1.0 开始支持,低版本需做兼容处理
连接低功耗蓝牙设备。
若小程序在之前已有搜索过某个蓝牙设备,并成功建立链接,可直接传入之前搜索获取的deviceId直接尝试连接该设备,无需进行搜索操作。
OBJECT参数说明:
参数
类型
必填
说明

deviceIdString是蓝牙设备 id,参考 getDevices 接口
successFunction是成功则返回本机蓝牙适配器状态
failFunction否接口调用失败的回调函数
completeFunction否接口调用结束的回调函数(调用成功、失败都会执行)
success返回参数:
参数
类型
说明

errMsgString成功:ok,错误:详细信息
示例代码:
  1. wx.createBLEConnection({
  2.   // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
  3.   deviceId: deviceId,
  4.   success: function (res) {
  5.     console.log(res)
  6.   }
  7. })
复制代码
Bug & Tip
  • tip: 安卓手机上如果多次调用create创建连接,有可能导致系统持有同一设备多个连接的实例,导致调用close的时候并不能真正的断开与设备的连接。因此请保证尽量成对的调用create和close接口
  • tip: 蓝牙链接随时可能断开,建议监听 wx.onBLEConnectionStateChange 回调事件,当蓝牙设备断开时按需执行重连操作
  • tip: 若对未连接的设备或已断开连接的设备调用数据读写操作的接口,会返回10006错误,详见错误码,建议进行重连操作
wx.closeBLEConnection(OBJECT)
基础库 1.1.0 开始支持,低版本需做兼容处理
断开与低功耗蓝牙设备的连接
OBJECT参数说明:
参数
类型
必填
说明

deviceIdString是蓝牙设备 id,参考 getDevices 接口
successFunction是成功则返回本机蓝牙适配器状态
failFunction否接口调用失败的回调函数
completeFunction否接口调用结束的回调函数(调用成功、失败都会执行)
success返回参数:
参数
类型
说明

errMsgString成功:ok,错误:详细信息
示例代码:
  1. wx.closeBLEConnection({
  2.   deviceId:deviceId
  3.   success: function (res) {
  4.     console.log(res)
  5.   }
  6. })
复制代码
wx.onBLEConnectionStateChange(CALLBACK)
基础库 1.1.1 开始支持,低版本需做兼容处理
监听低功耗蓝牙连接的错误事件,包括设备丢失,连接异常断开等等。
CALLBACK参数说明:
参数
类型
说明

deviceIdString蓝牙设备 id,参考 device 对象
connectedBoolean连接目前的状态
示例代码:
  1. wx.onBLEConnectionStateChange(function(res) {
  2.   // 该方法回调中可以用于处理连接意外断开等异常情况
  3.   console.log(`device ${res.deviceId} state has changed, connected: ${res.connected}`)
  4. })
复制代码
wx.getBLEDeviceServices(OBJECT)
基础库 1.1.0 开始支持,低版本需做兼容处理
获取蓝牙设备所有 service(服务)
OBJECT参数说明:
参数
类型
必填
说明

deviceIdString是蓝牙设备 id,参考 getDevices 接口
successFunction是成功则返回本机蓝牙适配器状态
failFunction否接口调用失败的回调函数
completeFunction否接口调用结束的回调函数(调用成功、失败都会执行)
success返回参数:
参数
类型
说明

servicesArray设备服务列表
errMsgString成功:ok,错误:详细信息service对象
蓝牙设备service(服务)信息
参数
类型
说明

uuidString蓝牙设备服务的 uuid
isPrimaryBoolean该服务是否为主服务
示例代码:
  1. wx.getBLEDeviceServices({
  2.   // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
  3.   deviceId: deviceId,
  4.   success: function (res) {
  5.     console.log('device services:', res.services)
  6.   }
  7. })
复制代码
Bug & Tip
  • tip:iOS平台上后续对特征值的read、write、notify,由于系统需要获取特征值实例,传入的 serviceId 与 characteristicId 必须由 getBLEDeviceServices 与 getBLEDeviceCharacteristics 中获取到后才能使用。建议双平台统一在建立链接后先执行 getBLEDeviceServices 与 getBLEDeviceCharacteristics 后再进行与蓝牙设备的数据交互


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表