Слышимые элементы управления

Функция «Управление с помощью слуховых аппаратов» в 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