Skip to content

在微信小程序连接蓝牙过程中,硬件设备同一个服务下存在两个相同uuid的特征值 #5809

@chengyuan-quan

Description

@chengyuan-quan

发行方式

App

具体平台

微信小程序、APP

开发环境

None

项目创建方式

None

依赖版本

问题描述

一、问题
在微信小程序连接蓝牙过程中,硬件设备同一个服务下存在两个相同uuid的特征值。
小程序:安卓可根据handle进行区别,IOS目前不支持
app:安卓、IOS都不支持handle

二、尝试步骤-微信小程序原生
1、前提
在微信小程序与ble蓝牙通信过程中:
每个蓝牙设备可能提供多个 Service,每个 Service 可能有多个 Characteristic,我们根据蓝牙设备的协议用对应的 Characteristic 进行读、写、监听即可达到与其通信的目的。
读:
写:wx.writeBLECharacteristicValue
监听:wx.notifyBLECharacteristicValueChange

2、测试遇到的问题
已知设备使用固定的serviceId(55535343-FE7D-4AE5-8FA9-9FAFD205E455)和characteristic (49535343-1E4D-4BD9-BA61-23C647249616)来进行蓝牙通信。
使用微信小程序连接硬件设备时,发现设备serviceId下存在两个相同的特征characteristic ,导致wx.writeBLECharacteristicValue和wx.notifyBLECharacteristicValueChange命令不成功。

3、查询解决方案

微信开放社区中同类问题:
https://developers.weixin.qq.com/community/develop/doc/00022e9840cf28028131e64e861000
https://developers.weixin.qq.com/community/develop/doc/000cc8d4f1c3e079635e6e57c51800

3、问题结论分析:IOS设备暂不支持
Android上getBLEDeviceCharacteristics返回的characteristic对象上有一个新的属性handle,可以用来区分同uuid的多个characteristic。writeBLECharacteristicValue和notifyBLECharacteristicValueChange的时候传入uuid之外也传入handle即可。
IOS设备暂不支持

4、Android设备方案尝试
通过wx.getBLEDeviceCharacteristics获取服务(55535343-FE7D-4AE5-8FA9-9FAFD205E455)中所有特征 (characteristic)。存在两个相同uuid 的特征值,但可以根据handle来进行区分
[
    {
        "uuid": "49535343-1E4D-4BD9-BA61-23C647249616",
        "handle": 33,
        "properties": {
            "read": false,
            "write": true,
            "notify": false,
            "indicate": false,
            "writeNoResponse": true,
            "writeDefault": true
        }
    },
    {
        "uuid": "49535343-1E4D-4BD9-BA61-23C647249616",
        "handle": 35,
        "properties": {
            "read": false,
            "write": false,
            "notify": true,
            "indicate": true,
            "writeNoResponse": false,
            "writeDefault": false
        }
    }
]

三、尝试步骤-uniapp开发小程序及app
1、开发小程序,安卓正常,IOS还是存在此问题
2、开发app,项目代码打包成安卓包后,仍然存在此问题

重现步骤

硬件设备同一个服务下存在两个相同uuid的特征值

期望行为

No response

实际行为

No response

截图或录屏

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions