Informações do dispositivo

Os provedores podem notificar um buscador sobre as informações do dispositivo pelo fluxo de mensagens.

Nome do grupo de mensagens Valor
Evento de informações do dispositivo 0x03
Nome do código de informações do dispositivo Valor
ID do modelo 0x01
Endereço BLE atualizado 0x02
Bateria atualizada 0x03
Tempo restante da bateria 0x04
Solicitação de componentes ativos 0x05
Resposta de componentes ativos 0x06
(Descontinuado) Recursos 0x07
Tipo de plataforma 0x08
Versão do firmware 0x09
Identificador efêmero FHN atual 0x0B

ID do modelo

As informações do ID do modelo (para gravar a AccountKey retroativamente) precisam ser enviadas ao buscador quando o fluxo de mensagens se conecta. Por exemplo, 0x03010003AABBCC seria:

  • 0x03: evento de informações do dispositivo
  • 0x01: valor do ID do modelo
  • 0x0003: dados extras, comprimento 3
  • 0xAABBCC: dados extras, ID do modelo

Endereço BLE

As informações do endereço BLE (para gravar a AccountKey retroativamente) , se disponíveis, também precisam ser enviadas ao buscador quando o fluxo de mensagens se conecta e sempre que o endereço é girado. Por exemplo, 0x03020006AABBCCDDEEFF seria:

  • 0x03: evento de informações do dispositivo
  • 0x02: valor do endereço BLE
  • 0x0006: dados extras, comprimento 6
  • 0xAABBCCDDEEFF: dados extras, endereço BLE

Bateria atualizada

Para provedores que oferecem suporte a notificações de bateria, as informações da bateria também podem ser enviadas pelo fluxo de mensagens. Quando o fluxo de mensagens se conecta ou o valor da bateria muda, uma atualização precisa ser enviada. A seção de dados extras do pacote precisa conter dados idênticos aos bytes s + 2, s + 3, s + 4 ao anunciar dados da bateria por BLE. Por exemplo, 0x0303000357417F seria:

  • 0x03: evento de informações do dispositivo
  • 0x03: valor da bateria
  • 0x0003: dados extras, comprimento 3
  • 0x57417F: dados extras, valores da bateria
    • 0x57: valor do fone esquerdo, não está carregando, 87% de bateria
    • 0x41: valor do fone direito, não está carregando, 65% de bateria
    • 0x7F: valor da caixa, não está carregando, bateria desconhecida

Os provedores também podem atualizar o tempo restante da bateria (se conhecido). Por exemplo, 0x03040001F0 seria:

  • 0x03: evento de informações do dispositivo
  • 0x04: tempo restante da bateria
  • 0x0001: dados extras, comprimento 1 (pode ser 2 para uint16, se necessário)
  • 0xF0: dados extras, tempo restante da bateria em minutos, 240 minutos

Componentes ativos

Os buscadores às vezes querem saber quais componentes estão ativos no momento, o que significa que uma ação pode ser realizada neles (consulte Ações do dispositivo). Quando o provedor recebe uma solicitação que contém o código solicitação de componentes ativos (0x05), uma resposta precisa ser retornada em até 1 segundo indicando o estado atual do provedor. A resposta vai usar o código resposta de componentes ativos (0x06) e conter dados extras indicando quais componentes estão disponíveis.

Para um provedor com um único componente, os dados extras precisam ser definidos como 0x00 se não estiverem disponíveis. Um exemplo disso pode ser um modo de baixo consumo em que a reprodução de mídia não será realizada. Caso contrário, os dados extras precisam ser definidos como 0x01.

Para fones de ouvido com vários componentes (por exemplo, um fone esquerdo e um direito), cada bit nos dados extras representa se esse componente está ativo. Um exemplo de componente inativo pode ser um fone que está na caixa e não está em uso. Especificamente para o caso do fone esquerdo e direito:

  • 0x00 (0b00000000): nenhum fone ativo
  • 0x01 (0b00000001): fone direito ativo, esquerdo inativo
  • 0x02 (0b00000010): fone esquerdo ativo, direito inativo
  • 0x03 (0b00000011): ambos os fones ativos

Tipo de plataforma

Os provedores podem querer ter um desempenho diferente com base na plataforma a que estão conectados. No momento, o pareamento rápido só é realizado pelo Android, mas o suporte pode ser expandido no futuro.

A mensagem vai conter um primeiro byte que identifica o tipo de plataforma nos dados extras:

Nome da plataforma Valor
Android 0x01

O segundo byte será personalizado por plataforma. No Android, ele vai se referir à versão do SDK. Por exemplo, o Android Pie terá um valor de 28 (0x1C).

Versão do firmware

A versão do firmware do provedor como uma string na codificação UTF-8. São as mesmas informações da característica de revisão do firmware.

Identificador efêmero FHN atual

Os provedores que anunciam frames FHN precisam informar o identificador efêmero FHN (EID, na sigla em inglês) atual com o valor do relógio atual para sincronizar com o buscador em caso de desvio do relógio (por exemplo, devido à bateria descarregada).

Exemplo:

  • 0x03: evento de informações do dispositivo
  • 0x0B: mensagem do identificador efêmero FHN atual
  • 0x0018: dados extras, comprimento 24 ou 36 bytes
  • 0x13F9EA80: dados extras (valor do relógio; 4 bytes)
  • 0x1122334455667788990011223344556677889900: dados extras (EID atual; 20 ou 32 bytes)