wx.notifyBLECharacteristicValueChange(Object object)

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

启用低功耗蓝牙设备特征值变化时的 notify 功能,订阅特征值。注意:必须设备的特征值支持 notify 或者 indicate 才可以成功调用。

另外,必须先启用 notifyBLECharacteristicValueChange 才能监听到设备 characteristicValueChange 事件

参数

Object object

属性类型默认值必填说明
deviceIdstring蓝牙设备 id
serviceIdstring蓝牙特征值对应服务的 uuid
characteristicIdstring蓝牙特征值的 uuid
stateboolean是否启用 notify
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

错误

错误码错误信息说明
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
10012operate time out连接超时
10013invalid_data连接 deviceId 为空或者是格式不正确

注意

  • 订阅操作成功后需要设备主动更新特征值的 value,才会触发 wx.onBLECharacteristicValueChange 回调。
  • 安卓平台上,在调用 notifyBLECharacteristicValueChange 成功后立即调用 writeBLECharacteristicValue 接口,在部分机型上会发生 10008 系统错误

示例代码

在开发者工具中预览效果

  1. wx.notifyBLECharacteristicValueChange({
  2. state: true, // 启用 notify 功能
  3. // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
  4. deviceId,
  5. // 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
  6. serviceId,
  7. // 这里的 characteristicId 需要在 getBLEDeviceCharacteristics 接口中获取
  8. characteristicId,
  9. success (res) {
  10. console.log('notifyBLECharacteristicValueChange success', res.errMsg)
  11. }
  12. })