Controles de dispositivos vestíveis
Os controles de dispositivos vestíveis no pareamento rápido têm como objetivo oferecer melhores controles de acesso para recursos importantes de dispositivos vestíveis no Android. Para isso, um novo grupo de mensagens de controles de dispositivos vestíveis foi adicionado ao fluxo de mensagens.
| Nome do grupo de mensagens | Valor |
|---|---|
| Controle de dispositivos vestíveis | 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 Seeker, o Pareamento Rápido 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 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 ANC | 0x13 | Provedor | Seeker | N | N |
Quando um Seeker se conecta a um provedor ou quando um provedor recebe uma mensagem "Receber o estado do ANC", ele pode notificar o estado do ANC para informar ao Seeker a capacidade e o estado armazenado do ANC. A mensagem é a seguinte:
| Byte | Tipo de dados | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | Controle de dispositivos vestíveis | 0x08 |
| 1 | uint8 | Notificar o estado do ANC | 0x13 |
| 2 a 3 | uint16 | Comprimento de dados adicionais | 0x04 |
| 4 a 7 | Dados de controle do ANC | varia |
Dados de controle do ANC
| Byte | Tipo de dados | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | Código da versão | varia, 0x02 para esta versão |
| 1 | Sinalizações | Alternâncias da interface Cada modo é ativado (1) ou desativado (0) de acordo com o valor do bit de flag, da seguinte maneira: Bit 0 (MSB): transparente Bit 1: adaptável (ou 0 se for indisponível) Bit 2: desativado Bit 3: reservado (defina o bit como 0) Bit 4: ANC |
varia |
| 2 | Sinalizações | Alternâncias configuráveis Qualquer um ou todos os bits de alternância da interface acima também podem ser definidos aqui para indicar quais estão ativados no momento. |
varia |
| 3 | Sinalizações | Estado atual Apenas um bit pode ser definido, e o valor desse byte precisa ser diferente de 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 ANC de três vias: transparente, desativado e ANC. Os fones de ouvido estão na cabeça, todos os modos podem ser definidos e o estado atual está desativado:
| Byte | Tipo de dados | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | Código da versão | 0x02 |
| 1 | Sinalizações | Alternâncias da interface | 0b10101000 |
| 2 | Sinalizações | Alternâncias configuráveis | 0b10101000 |
| 3 | Sinalizações | Estado atual | 0b00100000 |
Exemplo 2: o provedor oferece suporte ao ANC de três vias: transparente, desativado e ANC. Apenas um fone de ouvido está na cabeça ou nenhum deles está, então 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 | 0x02 |
| 1 | Sinalizações | Alternância da interface | 0b10101000 |
| 2 | Sinalizações | Alternância configurável | 0b00000000 |
| 3 | Sinalizações | Estado atual | 0b00100000 |
Se o usuário mudar a alternância, o Seeker vai definir o estado atual para o provedor da seguinte maneira:
| Byte | Tipo de dados | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | Controle de dispositivos vestíveis | 0x08 |
| 1 | uint8 | Definir o estado do ANC | 0x12 |
| 2 a 3 | uint16 | Comprimento de 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 do ANC (alternância da interface) | varia |
| 6 | Sinalizações | Modos ativados do ANC (alternância 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 dados de controle do ANC enviados do lado do Seeker. Se o valor de comprimento adicional for definido como 0x14, os bytes reservados de 8 a 23 estarão presentes e, ao receber esses bytes, o provedor deverá ignorá-los. Se o valor de comprimento adicional for definido como 0x04, não haverá bytes reservados.
Quando um provedor recebe uma mensagem "Definir o estado do ANC", ele precisa confirmar, e notificar o estado do ANC a todos os Seekers conectados. Se o usuário mudar a configuração por um gesto do fone de ouvido ou pelo app complementar, o provedor também precisará enviar uma notificação a todos os Seekers conectados.
Exemplo 3: o provedor oferece suporte ao ANC de quatro vias: transparente, adaptável, desativado e ANC. Os fones de ouvido estão na cabeça, todos os modos podem ser definidos e o estado atual é adaptável:
| Byte | Tipo de dados | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | Código da versão | 0x02 |
| 1 | Sinalizações | Alternância da interface | 0b11101000 |
| 2 | Sinalizações | Alternância configurável | 0b11101000 |
| 3 | Sinalizações | Estado atual | 0b01000000 |