Слышимые элементы управления
Функция «Управление с помощью слуховых аппаратов» в Fast Pair призвана обеспечить более удобный доступ к важным функциям слуховых аппаратов на Android. Для достижения этой цели в поток сообщений добавлена новая группа сообщений «Управление с помощью слуховых аппаратов».
| Название группы сообщений | Ценить |
|---|---|
| Услышимый контроль | 0x08 |
Активное шумоподавление
Активное шумоподавление становится важной функцией для наушников премиум-класса. На стороне Seeker, Fast Pair будет иметь пользовательский интерфейс и логику для установки, получения и сохранения состояния, а состояние будет храниться на стороне Provider. Для Provider обязательно отправлять Session Nonce при подключении потока событий. Для этого определены следующие коды сообщений:
| Кодовое имя сообщения | Ценить | Отправитель | Ответчик | MAC | ПОДТВЕРЖДЕНИЕ |
|---|---|---|---|---|---|
| Получите штат АНК | 0x11 | Искатель | Поставщик | Н | Н |
| Установить штат ANC | 0x12 | Искатель | Поставщик | Я | Я |
| Уведомить ANC (Анонимный национальный совет штата) | 0x13 | Поставщик | Искатель | Н | Н |
Когда пользователь подключается к провайдеру или когда провайдер получает сообщение "Получить состояние ANC", провайдер может уведомить пользователя о состоянии ANC, чтобы тот знал о своих возможностях ANC и сохраненном состоянии. Сообщение выглядит следующим образом:
| Байт | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Услышимый контроль | 0x08 |
| 1 | uint8 | Уведомить ANC (Анонимный национальный совет штата) | 0x13 |
| 2 - 3 | uint16 | Дополнительная длина данных | 0x04 |
| 4 - 7 | контрольные данные АНК | варьируется |
контрольные данные АНК
| Байт | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Код версии | варьируется , 0x02 для этой версии |
| 1 | Флаги | Переключатели пользовательского интерфейса Каждый режим включается (1) или выключается (0) в зависимости от значения соответствующего бита флага следующим образом: Бит 0 (старший бит): прозрачный Бит 1: адаптивный (или 0, если не поддерживается) Бит 2: выключен Бит 3: Зарезервировано (Установить бит в 0) Часть 4: АНК | варьируется |
| 2 | Флаги | Настраиваемые переключатели Здесь также можно установить любой или все из перечисленных выше переключателей пользовательского интерфейса, чтобы указать, какие из них в данный момент включены. | варьируется |
| 3 | Флаги | Текущее состояние Можно установить только один бит, и значение этого байта должно быть ненулевым. | варьируется |
В зависимости от данных управления активным шумоподавлением (ANC) Seeker будет отображать переключаемый интерфейс.
Пример 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 | Код версии для искателя | варьируется , 0x01 или 0x02 |
| 5 | Флаги | Настраиваемые режимы активного шумоподавления (переключение в пользовательском интерфейсе) | варьируется |
| 6 | Флаги | Режимы активного шумоподавления (настраиваемый переключатель) | варьируется |
| 7 | Флаги | Новый индекс режимов активного шумоподавления (новое состояние) | варьируется |
| 8 - 23 | Сдержанный | варьируется |
Байты 4-7 фактически представляют собой данные управления ANC, отправляемые со стороны Seeker. Если значение дополнительной длины установлено равным 0x14, зарезервированные байты 8-23 будут присутствовать, и при получении этих байтов провайдер должен их игнорировать. Если значение дополнительной длины установлено равным 0x04, зарезервированные байты отсутствуют.
Когда поставщик услуг получает сообщение «Установить состояние ANC», он должен подтвердить его и уведомить всех подключенных пользователей о состоянии ANC. Если пользователь изменяет настройку с помощью жестов гарнитуры или сопутствующего приложения, поставщик услуг также должен отправить уведомление всем подключенным пользователям.
Пример 3: Провайдер поддерживает 4-стороннее активное шумоподавление: прозрачный - адаптивный - выключен - активное шумоподавление, наушники надеты на голову, все режимы теперь настраиваемые, и текущее состояние - адаптивный:
| Байт | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Код версии | 0x02 |
| 1 | Флаги | переключатель пользовательского интерфейса | 0b11101000 |
| 2 | Флаги | Настраиваемый переключатель | 0b11101000 |
| 3 | Флаги | Текущее состояние | 0b01000000 |