1***@163.com
1***@163.com
  • 发布:2019-08-20 13:54
  • 更新:2019-08-20 14:31
  • 阅读:1814

【报Bug】uni-app getBLEDeviceServices 返回的服务有问题

分类:uni-app

详细问题描述

分别使用微信小程序和 uni-app 的 getBLEDeviceCharacteristics 方法获取蓝牙某个服务的特征值,发现uni-app返回值有问题。
1,微信返回的是2个,其中一个可以 read 一个可以 write 。
2,uni-app 返回的是4个,但是没有一个是可以 write 的。
如图所示:
左边为微信获取的数据,右边是 uni-app 获取的

[内容]

重现步骤

[步骤]

[结果]

[期望]

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

IDE运行环境说明

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

[IDE版本号]
2.2.2.20190816

[windows版本号]

[mac版本号]
macOS mojave 10.14.6 (18G84)

uni-app运行环境说明

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

[运行端版本号]
1.02
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX
[编译模式是老模板模式还是新的自定义组件模式?]
自定义组件模式

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

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

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

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-08-20 13:54 负责人:无 分享
已邀请:
1***@163.com

1***@163.com (作者)

解决了。
原因是 getBLEDeviceServices 方法调用成功会返回好几个服务,一般获取第一个主服务就可以了。
获取第一个主服务就跳出循环。

uni.getBLEDeviceServices({  
  deviceId: connectedDeviceId, // 之前步骤获取的设备ID  
  success: function(res) {  
    for (let i = 0; i < res.services.length; i++) {  
      // 获取主服务并且跳出循环  
      if (res.services[i].isPrimary) {  
    serviceId = res.services[i].uuid;  
    break;  
      }  
    }  
  });  
})

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