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

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

[复制链接]
发表于 2018-2-8 09:40:17 | 显示全部楼层 |阅读模式
wx.notifyBLECharacteristicValueChange(OBJECT)
基础库 1.1.1 开始支持,低版本需做兼容处理
启用低功耗蓝牙设备特征值变化时的 notify 功能,订阅特征值。注意:必须设备的特征值支持notify或者indicate才可以成功调用,具体参照 characteristic 的 properties 属性
另外,必须先启用notify才能监听到设备 characteristicValueChange 事件
OBJECT参数说明:
参数
类型
必填
说明

deviceIdString是蓝牙设备 id,参考 device 对象
serviceIdString是蓝牙特征值对应服务的 uuid
characteristicIdString是蓝牙特征值的 uuid
stateBoolean是true: 启用 notify; false: 停用 notify
successFunction是成功则返回本机蓝牙适配器状态
failFunction否接口调用失败的回调函数
completeFunction否接口调用结束的回调函数(调用成功、失败都会执行)
success返回参数:
参数
类型
说明

errMsgString成功:ok,错误:详细信息
示例代码:
  1. wx.notifyBLECharacteristicValueChange({
  2.   state: true, // 启用 notify 功能
  3.   // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接  
  4.   deviceId: deviceId,
  5.   // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
  6.   serviceId: serviceId,
  7.   // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
  8.   characteristicId: characteristicId,
  9.   success: function (res) {
  10.     console.log('notifyBLECharacteristicValueChange success', res.errMsg)
  11.   }
  12. })
复制代码
Bug & Tip
  • tip: 订阅操作成功后需要设备主动更新特征值的value,才会触发 wx.onBLECharacteristicValueChange 回调。
  • tip: 安卓平台上,在调用notify成功后立即调用write接口,在部分机型上会发生 10008 系统错误
wx.onBLECharacteristicValueChange(CALLBACK)
基础库 1.1.0 开始支持,低版本需做兼容处理
监听低功耗蓝牙设备的特征值变化。必须先启用notify接口才能接收到设备推送的notification。
CALLBACK参数说明:
参数
类型
说明

deviceIdString蓝牙设备 id,参考 device 对象
serviceIdString特征值所属服务 uuid
characteristicIdString特征值 uuid
valueArrayBuffer特征值最新的值 (注意:vConsole 无法打印出 ArrayBuffer 类型数据)
示例代码:
  1. // ArrayBuffer转16进度字符串示例
  2. function ab2hex(buffer) {
  3.   var hexArr = Array.prototype.map.call(
  4.     new Uint8Array(buffer),
  5.     function(bit) {
  6.       return ('00' + bit.toString(16)).slice(-2)
  7.     }
  8.   )
  9.   return hexArr.join('');
  10. }
  11. wx.onBLECharacteristicValueChange(function(res) {
  12.   console.log(`characteristic ${res.characteristicId} has changed, now is ${res.value}`)
  13.   console.log(ab2hext(res.value))
  14. })
复制代码
蓝牙错误码(errCode)列表
错误码
说明
备注

0ok正常
10000not init未初始化蓝牙适配器
10001not available当前蓝牙适配器不可用
10002no device没有找到指定设备
10003connection fail连接失败
10004no service没有找到指定服务
10005no characteristic没有找到指定特征值
10006no connection当前连接已断开
10007property not support当前特征值不支持此操作
10008system error其余所有系统上报的异常
10009system not supportAndroid 系统特有,系统版本低于 4.3 不支持BLE
回复

使用道具 举报

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

本版积分规则

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