Controles de aparelhos auditivos

O objetivo dos controles de wearables no Par rápido é oferecer melhores controles de acesso para recursos importantes de wearables no Android. Um novo grupo de controles de mensagem do Hearable foi adicionado ao fluxo de mensagens para conseguir isso.

Nome do grupo de mensagens Valor
Controle do aparelho auditivo 0x08

Controle ativo de ruído

O controle ativo de ruído está se tornando um recurso importante para fones de ouvido premium. No lado do solicitante, o Fast Pair terá a interface e a lógica para definir, receber e salvar o estado, que será armazenado no lado do provedor. É obrigatório que o provedor envie o Nonce da sessão quando o fluxo de eventos estiver conectado. Para fazer isso, os códigos de mensagem abaixo são definidos:

Nome do código da mensagem Valor Remetente Participante MAC CONF
Receber o estado do ANC 0x11 Seeker Provedor N N
Definir o estado do ANC 0x12 Seeker Provedor S S
Notificar o estado do cancelamento de ruído ativo 0x13 Provedor Seeker N N

Quando um buscador se conecta a um provedor ou quando um provedor recebe uma mensagem "Receber estado de ANC", o provedor pode notificar o estado de ANC para informar ao buscador o recurso de ANC e o estado armazenado. A mensagem é a seguinte:

Byte Tipo de dados Descrição Valor
0 uint8 Controle do aparelho auditivo 0x08
1 uint8 Notificar o estado do cancelamento de ruído ativo 0x13
2 a 3 uint16 Duração dos dados adicionais 0x04
4 - 7 Dados de controle do ANC varia
Dados de controle do cancelamento ativo de ruído
Byte Tipo de dados Descrição Valor
0 uint8 Código da versão varia,0x02 para esta versão
1 Sinalizações Alternar a interface
Cada modo é ativado (1) ou desativado (0) de acordo com o valor do bit de sinalizador, conforme segue:
Bit 0 (MSB): transparente
Bit 1: reservado (definir o bit como 0)
Bit 2: desativado
Bit 3: reservado (definir o bit como 0)
Bit 4: ANC
varia
2 Sinalizações Botões de alternância configuráveis
Todos ou alguns dos bits de alternância da IU acima também podem ser definidos aqui para indicar quais estão ativados.
varia
3 Sinalizações Estado atual
Somente um bit pode ser definido, e o valor desse byte não pode ser zero.
varia

O Seeker vai mostrar a interface de alternância de acordo com os dados de controle do ANC.

Exemplo 1: o provedor oferece suporte ao cancelamento de ruído ativo de três vias: transparente - desativado - cancelamento de ruído ativo e fones de ouvido, todos os modos podem ser definidos agora, e o estado atual está desativado:

Byte Tipo de dados Descrição Valor
0 uint8 Código da versão 0x01
1 Sinalizações Botões de ativar/desativar na interface 0b10101000
2 Sinalizações Alternar definições 0b10101000
3 Sinalizações Estado atual 0b00100000

Exemplo 2: o provedor oferece suporte ao cancelamento de ruído de três vias: som ambiente - desligado - cancelamento de ruído. Apenas um fone está no ouvido agora ou nenhum está no ouvido. Portanto, nenhum modo pode ser definido, e o estado atual está desativado:

Byte Tipo de dados Descrição Valor
0 uint8 Código da versão 0x01
1 Sinalizações Botão de alternância da interface 0b10101000
2 Sinalizações Alternar definições 0b00000000
3 Sinalizações Estado atual 0b00100000

Se o usuário mudar a posição do botão, o Seeker vai definir o estado atual para o provedor da seguinte maneira:

Byte Tipo de dados Descrição Valor
0 uint8 Controle do aparelho auditivo 0x08
1 uint8 Definir o estado do ANC 0x12
2 a 3 uint16 Duração dos dados adicionais varia, 0x04 ou 0x14
4 uint8 Código da versão do Seeker varia, 0x01 ou 0x02
5 Sinalizações Modos configuráveis de cancelamento de ruído (alternador da interface) varia
6 Sinalizações Modos com cancelamento de ruído ativado (chave de ativação configurável) varia
7 Sinalizações Novo índice do modo ANC (novo estado) varia
8 a 23 Reservado varia

Os bytes 4 a 7 são na verdade dados de controle de ANC enviados pelo Seeker. Se o valor de comprimento adicional for definido como 0x14, os bytes reservados 8 a 23 estarão presentes e, ao receber esses bytes, o provedor os ignorará. Se o valor de comprimento adicional for definido como 0x04, não haverá bytes reservados.

Quando um provedor recebe uma mensagem "Definir estado do ANC", ele precisa confirmar e notificar o estado do ANC para todos os Seekers conectados. Se o usuário mudar a configuração por gesto do fone de ouvido ou pelo aplicativo complementar, o provedor também precisará enviar uma notificação para todos os Seekers conectados.