血魔东健
血魔东健
  • 发布:2019-05-17 11:42
  • 更新:2019-11-15 13:41
  • 阅读:1538

【报Bug】h5+ api 蓝牙模块 订阅特征值问题

分类:HTML5+

详细问题描述

[内容]
***notifyBLECharacteristicValueChange
启用低功耗蓝牙设备特征值变化时的notify功能,订阅特征值

void plus.bluetooth.notifyBLECharacteristicValueChange(options);

说明:
蓝牙设备服务的特征值必须支持notify或indicate才可以成功调用。 另外,必须先启用notifyBLECharacteristicValueChange才能监听到设备characteristicValueChange事件,即特征值发生变化时通过onBLECharacteristicValueChange注册的事件回调。***

***onBLECharacteristicValueChange
监听低功耗蓝牙设备的特征值变化事件

void plus.bluetooth.onBLECharacteristicValueChange(callback);

参数:
callback: ( BLECharacteristicValueChangeCallback ) 必选 特征值变化回调函数
回调函数参数event对象包括以下属性: deviceId - String类型,蓝牙设备id; serviceId - String类型,蓝牙服务的uuid; characteristicId - String类型,蓝牙特征值的uuid; value - ArrayBuffer类型,特征值的最新值。***

这是文档原文。
在开发过程中发现: 订阅的特征值支持indicate(notify为false,indicate为true),订阅后监听不到value的变化;订阅的特征值支持notify(notify为true,indicate为false),订阅后可以监听到value的变化(虽然这两种特征值在执行notifyBLECharacteristicValueChange时都能成功回调success)。

重现步骤

[步骤] 连接蓝牙(createBLEConnection) → 获取设备服务(getBLEDeviceServices) → 订阅特征值(notifyBLECharacteristicValueChange,特征值写在配置文件中直接订阅) → 监听数据变化(onBLECharacteristicValueChange)

[结果] onBLECharacteristicValueChange 可以获取支持notify特征值的变化,但获取不到支持indicate特征值的变化

[期望] 可以获取支持indicate特征值的变化

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-05-17 11:42 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

请尽量提供详细的信息:
说明使用的是什么蓝牙设备?可能需要提供蓝牙设备才能排查修复。
Android还是iOS平台,在什么手机上复现问题的?

  • 血魔东健 (作者)

    蓝牙设备:鱼跃血压计

    平台:Android

    设备:荣耀5平板

    2019-05-20 11:20

  • 血魔东健 (作者)

    能否给个支持indicate的特征值的数据读取demo?

    2019-05-20 12:01

  • 血魔东健 (作者)

    我查了一下android原生调用蓝牙的资料,说是indicate特征值是有确认机制的,那文档中有反映确认机制的相关demo吗?

    2019-05-20 14:03

DCloud_Android_zl

DCloud_Android_zl

我这边测试了一下,indicate为true的情况下是可以通过onBLECharacteristicValueChange获取到特征值的,你可以换几台手机试一下,或者通过其他软件测试一下,当前设备能不能监听到特征值。

2***@qq.com

2***@qq.com

你好 请问一下你的问题解决了嘛。我遇到和你相同的问题。

该问题目前已经被锁定, 无法添加新回复