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)