耳戴设备控件
快速配对的耳戴式设备控件旨在为 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 | 版本号 | 0x02 |
| 1 | 标志 | 界面切换开关 | 0b10101000 |
| 2 | 标志 | 可设置的切换开关 | 0b10101000 |
| 3 | 标志 | 当前状态 | 0b00100000 |
示例 2:提供程序支持 3 向 ANC:通透 - 关闭 - ANC,现在只有一只耳机戴在头上或没有耳机戴在头上,因此无法设置模式,当前状态为关闭:
| 字节 | 数据类型 | 说明 | 值 |
|---|---|---|---|
| 0 | uint8 | 版本号 | 0x02 |
| 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 | 标志 | 可设置的 ANC 模式(界面切换) | 各不相同 |
| 6 | 标志 | 已启用 ANC 的模式(可设置的切换开关) | 各不相同 |
| 7 | 标志 | 新的 ANC 模式索引(新状态) | 各不相同 |
| 8 - 23 | 已预留 | 各不相同 |
字节 4-7 实际上是来自 Seeker 端的 ANC 控制数据。如果将附加长度值设置为 0x14,则保留字节 8-23 将存在,并且在收到这些字节时,提供方应忽略它们。如果将附加长度值设置为 0x04,则不存在预留字节。
当提供程序收到“设置 ANC 状态”消息时,应进行确认,并向所有已连接的搜索者通知 ANC 状态。 如果用户通过耳机手势或配套应用更改了设置,提供程序也应向所有已连接的搜索者发送通知。
示例 3:提供方支持 4 向 ANC:通透 - 自适应 - 关闭 - ANC,耳机处于佩戴状态,所有模式均可设置,当前状态为自适应:
| 字节 | 数据类型 | 说明 | 值 |
|---|---|---|---|
| 0 | uint8 | 版本号 | 0x02 |
| 1 | 标志 | 界面切换开关 | 0b11101000 |
| 2 | 标志 | 可设置的切换开关 | 0b11101000 |
| 3 | 标志 | 当前状态 | 0b01000000 |