h***@163.com
h***@163.com
  • 发布:2020-08-14 17:08
  • 更新:2022-05-06 14:47
  • 阅读:1119

【报Bug】安卓手机 app端 连接蓝牙设备无法同时监听几个characteristic 服务的value变化,只能监听到一个其他的都被覆盖

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.8.5

手机系统: Android

手机系统版本号: Android 10

手机厂商: vivo oppo 三星等,所有安卓机

手机机型: 所有安卓机

页面类型: vue

nvue编译模式: fast

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

·1.uni.createBLEConnection()成功的回调里面
2.调用uni.onBLECharacteristicValueChange,
3.setTimeout 2秒后执行uni.getBLEDeviceCharacteristics 在成功回调里面
4.循环调用uni.notifyBLECharacteristicValueChange

预期结果:

app 安卓机 也能监听到多个 characteristic服务的变化指

实际结果:

在小程序 ios跟安卓机都能监听到多个 characteristic服务的变化指
在app ios也能监听到多个 characteristic服务的变化指
但是在app 安卓机就只能监听到一个 characteristic服务的变化指,无法监听到多个characteristic服务的变化指

bug描述:

·1.uni.createBLEConnection()成功的回调里面
2.调用uni.onBLECharacteristicValueChange,
3.setTimeout 2秒后执行uni.getBLEDeviceCharacteristics 在成功回调里面
4.循环调用uni.notifyBLECharacteristicValueChange
在小程序 ios跟安卓机都能监听到多个 characteristic服务的变化指
在app ios也能监听到多个 characteristic服务的变化指
但是在app 安卓机就只能监听到一个 characteristic服务的变化指,无法监听到多个characteristic服务的变化指
//已知有一下两个特征服务 app端: 安卓机只能监听到 2A36的服务返回值, ios能收到两个服务返回值, 小程序端也可以监听两个服务值
// 2A35服务主要负责实时的心率值回传
// 2A36服务主要负责最后测量结果的血压,收缩压值回传
/ {
"uuid": "00002A35-0000-1000-8000-00805F9B34FB",
"properties": {
"read": false,
"write": false,
"notify": false,
"indicate": true //-----------------------
}
}, {
"uuid": "00002A36-0000-1000-8000-00805F9B34FB",
"properties": {
"read": false,
"write": false,
"notify": true, //--------------------------
"indicate": false
}
}
/

2020-08-14 17:08 负责人:无 分享
已邀请:
jxtian

jxtian

为了快速定位问题,请提供一下可复现的示例工程

h***@163.com

h***@163.com (作者) - uni-app开发者

求回复

h***@163.com

h***@163.com (作者) - uni-app开发者

没人遇到这种情况吗?

  • Cris

    Android设备监听一个能实现?能分享一下不?

    2022-06-10 11:50

  • 魔人JOJO

    遇到了,这个问题你解决了嘛?

    2022-08-29 16:46

maskman

maskman

uni.onBLECharacteristicValueChange(CALLBACK)
监听低功耗蓝牙设备的特征值变化事件。必须先启用 notifyBLECharacteristicValueChange 接口才能接收到设备推送的 notification。

要回复问题请先登录注册