Información del dispositivo

Los proveedores pueden notificar a un buscador sobre la información del dispositivo a través del flujo de mensajes.

Nombre del grupo de mensajes Valor
Evento de información del dispositivo 0x03
Nombre interno del dispositivo Valor
ID de modelo 0x01
Se actualizó la dirección de BLE 0x02
Se actualizó la batería 0x03
Tiempo restante de la batería 0x04
Solicitud de componentes activos 0x05
Respuesta de componentes activos 0x06
(Obsoleto) Capabilities 0x07
Tipo de plataforma 0x08
Versión de firmware 0x09
Identificador efímero actual de FHN 0x0B

ID de modelo

La información del ID del modelo (para Retroactively Writing AccountKey) se debe enviar al buscador cuando se conecte Message Stream. Por ejemplo, 0x03010003AABBCC sería:

  • 0x03: Evento de información del dispositivo
  • 0x01: Valor del ID del modelo
  • 0x0003: Datos adicionales, longitud 3
  • 0xAABBCC: Datos adicionales, ID del modelo

Dirección de BLE

La información de la dirección BLE (para Retroactively Writing AccountKey) , si está disponible, también se debe enviar al buscador cuando se conecta el flujo de mensajes y cada vez que se rota la dirección. Por ejemplo, 0x03020006AABBCCDDEEFF sería:

  • 0x03: Evento de información del dispositivo
  • 0x02: Valor de la dirección BLE
  • 0x0006: Datos adicionales, longitud 6
  • 0xAABBCCDDEEFF: Datos adicionales, dirección BLE

Se actualizó la batería

En el caso de los proveedores que admiten notificaciones de batería, la información de la batería también se puede enviar a través de Message Stream. Cuando se conecta Message Stream o cambia el valor de la batería, se debe enviar una actualización. La sección de datos adicionales del paquete debe contener datos idénticos a los bytes s + 2, s + 3 y s + 4 cuando se anuncian datos de la batería a través de BLE. Por ejemplo, 0x0303000357417F sería:

  • 0x03: Evento de información del dispositivo
  • 0x03: Valor de la batería
  • 0x0003: Datos adicionales, longitud 3
  • 0x57417F: Datos adicionales, valores de batería
    • 0x57: Valor del auricular izquierdo, no se está cargando, 87% de batería
    • 0x41: Valor del auricular derecho, no se está cargando, 65% de batería
    • 0x7F: Valor del estuche, no se está cargando, batería desconocida

Los proveedores también pueden actualizar el tiempo de batería restante (si se conoce). Por ejemplo, 0x03040001F0 sería lo siguiente:

  • 0x03: Evento de información del dispositivo
  • 0x04: Tiempo restante de la batería
  • 0x0001: Datos adicionales, longitud 1 (podría ser 2 para uint16 si es necesario).
  • 0xF0: Datos adicionales, tiempo restante de la batería en minutos, 240 minutos

Componentes activos

A veces, los usuarios que realizan búsquedas desean saber qué componentes están activos en ese momento, lo que significa que se puede realizar una acción en ellos (consulta Acciones del dispositivo). Cuando el proveedor recibe una solicitud que contiene el código de solicitud de componentes activos (0x05), se debe devolver una respuesta en 1 segundo que indique el estado actual del proveedor. La respuesta usará el código de respuesta de componentes activos (0x06) y contendrá datos adicionales que indicarán qué componentes están disponibles.

En el caso de un proveedor con un solo componente, los datos adicionales deben establecerse en 0x00 si no están disponibles. Un ejemplo de esto podría ser un modo de bajo consumo en el que no se realizará la reproducción de contenido multimedia. De lo contrario, los datos adicionales deben establecerse en 0x01.

En el caso de los auriculares con varios componentes (por ejemplo, un auricular izquierdo y uno derecho), cada bit de los datos adicionales representa si ese componente está activo. Un ejemplo de componente inactivo podría ser un auricular que está en el estuche y no se usa. Específicamente para el caso de los auriculares izquierdo y derecho:

  • 0x00 (0b00000000): Ningún auricular activo
  • 0x01 (0b00000001): Auricular derecho activo, izquierdo inactivo
  • 0x02 (0b00000010): Auricular izquierdo activo, derecho inactivo
  • 0x03 (0b00000011): Ambos auriculares activos

Tipo de plataforma

Es posible que los proveedores deseen comportarse de manera diferente según la plataforma a la que estén conectados. Por el momento, la vinculación rápida solo se realiza a través de Android, pero es posible que se expanda la compatibilidad en el futuro.

El mensaje contendrá un primer byte que identifica el tipo de plataforma en los datos adicionales:

Nombre de la plataforma Valor
Android 0x01

El segundo byte se personalizará según la plataforma. En Android, se referirá a la versión del SDK. Por ejemplo, Android Pie tendrá un valor de 28 (0x1C).

Versión de firmware

Versión de firmware del proveedor como una cadena con codificación UTF-8. Es la misma información que se encuentra en la característica de revisión de firmware.

Identificador efímero de FHN actual

Los proveedores que anuncian fotogramas de FHN deben informar el identificador efímero (EID) de FHN actual con el valor de reloj actual para sincronizarse con el buscador en caso de una desviación del reloj (por ejemplo, debido a una batería agotada).

Por ejemplo:

  • 0x03: Evento de información del dispositivo
  • 0x0B: Mensaje de identificador efímero de FHN actual
  • 0x0018: Datos adicionales, longitud de 24 o 36 bytes
  • 0x13F9EA80: Datos adicionales (valor del reloj; 4 bytes)
  • 0x1122334455667788990011223344556677889900: Datos adicionales (EID actual; 20 o 32 bytes)