可穿戴设备控制

快速配对的耳戴式设备控件旨在为 Android 设备上的重要耳戴式设备功能提供更好的访问控制。为此,我们在消息流中添加了一个新的消息组“Hearable controls”。

消息组名称
可穿戴设备控制 0x08

主动降噪

主动降噪功能正逐渐成为高端头戴式耳机的一项重要功能。在搜索器端,快速配对将具有用于设置、获取和保存状态的界面和逻辑,并且状态将存储在提供器端。当事件流连接时,提供方必须发送 Session Nonce。 为实现此目的,我们定义了以下消息代码:

消息代码名称 发件人 回复者 MAC ACK
获取 ANC 状态 0x11 Seeker 提供商
设置 ANC 状态 0x12 Seeker 提供商
通知 ANC 状态 0x13 提供商 Seeker

当 Seeker 连接到 Provider 时,或者当 Provider 收到“Get ANC state”消息时,Provider 可以通知 ANC 状态,以便让 Seeker 了解其 ANC 功能和存储的状态。消息如下所示:

字节 数据类型 说明
0 uint8 可穿戴设备控制 0x08
1 uint8 通知 ANC 状态 0x13
2 - 3 uint16 其他数据长度 0x04
4 - 7 ANC 控制数据 各不相同
ANC 控制数据
字节 数据类型 说明
0 uint8 版本号 可变,此版本为 0x02
1 标志 界面切换
根据标志位的值,每个模式均处于启用 (1) 或停用 (0) 状态,如下所示:
位 0(最高有效位):透明
位 1:自适应(如果不支持,则为 0)
位 2:关闭
位 3:预留(将位设置为 0)
位 4:ANC
各不相同
2 标志 可设置的切换开关
上述任何或所有界面切换开关位也可在此处设置,以指明哪些目前处于启用状态。
各不相同
3 标志 当前状态
只能设置一位,且此字节的值不得为零。
各不相同

Seeker 将根据 ANC 控制数据显示切换界面。

示例 1:提供方支持 3 向 ANC:通透 - 关闭 - ANC,耳机处于佩戴状态,所有模式均可设置,当前状态为关闭:

字节 数据类型 说明
0 uint8 版本号 0x01
1 标志 界面切换开关 0b10101000
2 标志 可设置的切换开关 0b10101000
3 标志 当前状态 0b00100000

示例 2:提供程序支持 3 向 ANC:通透 - 关闭 - ANC,现在只有一只耳机戴在头上或没有耳机戴在头上,因此无法设置模式,当前状态为关闭:

字节 数据类型 说明
0 uint8 版本号 0x01
1 标志 界面切换开关 0b10101000
2 标志 可设置的切换开关 0b00000000
3 标志 当前状态 0b00100000

如果用户切换开关,Seeker 会将当前状态设置为 Provider,如下所示:

字节 数据类型 说明
0 uint8 可穿戴设备控制 0x08
1 uint8 设置 ANC 状态 0x12
2 - 3 uint16 其他数据长度 因设备而异,0x04 或 0x14
4 uint8 Seeker 版本代码 可变,0x01 或 0x02
5 标志 可设置的主动降噪模式(界面切换) 各不相同
6 标志 已启用 ANC 的模式(可设置的切换开关) 各不相同
7 标志 新的 ANC 模式索引(新状态) 各不相同
8 - 23 已预留 各不相同

字节 4-7 实际上是来自 Seeker 端的 ANC 控制数据。如果将附加长度值设置为 0x14,则保留字节 8-23 将存在,并且提供程序在收到这些字节时应忽略它们。如果将附加长度值设置为 0x04,则不存在任何预留字节。

当提供程序收到“设置 ANC 状态”消息时,应确认,并向所有已连接的搜索者通知 ANC 状态。 如果用户通过耳机手势或配套应用更改了设置,提供程序也应向所有已连接的搜索者发送通知。

示例 3:提供方支持 4 向 ANC:通透 - 自适应 - 关闭 - ANC,耳机处于佩戴状态,所有模式现在都可设置,当前状态为自适应:

字节 数据类型 说明
0 uint8 版本号 0x01
1 标志 界面切换开关 0b11101000
2 标志 可设置的切换开关 0b11101000
3 标志 当前状态 0b01000000