当我运行时,bluetoothctl info
它会显示有关我已连接的 COWIN E9 耳机的信息,
Device REDACTED (public)
Name: COWIN E9
Alias: COWIN E9
Class: 0x00240418
Icon: audio-card
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Vendor specific (REDACTED)
UUID: Serial Port (REDACTED)
UUID: Headset (REDACTED)
UUID: Audio Sink (REDACTED)
UUID: A/V Remote Control Target (REDACTED)
UUID: Advanced Audio Distribu.. (REDACTED)
UUID: A/V Remote Control (REDACTED)
UUID: Handsfree (REDACTED)
UUID: PnP Information (REDACTED)
UUID: Generic Access Profile (REDACTED)
UUID: Generic Attribute Profile (REDACTED)
UUID: Battery Service (REDACTED)
UUID: Google (REDACTED)
Modalias: bluetooth:REDACTED
为什么这款耳机有一个UUID: Google
,这些 UUID 有何用途?为什么一款耳机需要这么多唯一标识符?这些是由耳机上的蓝牙控制器提供的吗?
答案1
蓝牙 UUID 涵盖完全不同的用途。 16 位 UUID 的范围保留用于
- 协议标识符(例如:HTTP 为 0x000C)
- 服务类别和配置文件(例如:0x1108 表示耳机)
- GATT 服务(例如:0x180F 表示电池)
- 单位(对于我的业务,蓝牙传感器,例如:0x272F 表示摄氏度)
- GATT 特征和对象类型(例如:0x2A1C 用于温度测量)
- 蓝牙 SIG 成员(例如:0xFCF1 和 Google 的其他成员。当然,并不是每个成员都有自己的 UUID,我们没有,您通常也不需要它。其他人有一堆 UUID。)
还有一些我不关心的。
因此,这些 UUID 具有完全不同的含义,但都服务于一个目的:互操作性。在握手设备上交换 UUID 以相互了解。当我们的仪器搜索温度传感器时,它可以扫描所有支持它的设备,而不仅仅是我们自己的传感器。
并非每个耳机都支持远程控制或电池服务,因此 UUID 有助于了解您的应用程序对特定设备的期望。
这对于蓝牙SIG的认证也起到了重要的作用。您必须证明您正确支持您宣传的所有协议。
答案2
您发布了几个相关问题。
这些 UUID 有何用途?
它们用于识别类型、服务和配置文件蓝牙特别兴趣小组 (Bluetooth SIG)定义并指定。请注意,UUID 是 128 位。
为了效率,并且由于 16 字节将占用链路层 27 字节数据有效负载长度的很大一部分,因此BLE(蓝牙低功耗)规范添加了两种额外的缩短的 UUID 格式:16 位和 32 位。
为什么一款耳机需要这么多唯一标识符?
因为它有很多服务。 UUID 不是标识符设备(您可能的猜测,问题的来源)。
这些是由耳机上的蓝牙控制器提供的吗?
是的。
为什么这款耳机有一个 UUID:Google?
这可能与谷歌快速配对服务,但我不确定。
查看完整列表这里。
有关的: