设备信息

提供方可以通过 消息流向寻求方发送设备信息通知。

消息组名称 值
设备信息事件 0x03
设备信息代码名称 值
模型 ID 0x01
BLE 地址已更新 0x02
电池已更新 0x03
电池剩余时间 0x04
活跃组件请求 0x05
活跃组件响应 0x06
(已废弃)功能 0x07
平台类型 0x08
固件版本 0x09
当前 FHN 临时标识符 0x0B

模型 ID

当消息流连接时,应向寻求方发送模型 ID 信息(用于 追溯写入 AccountKey)。例如,0x03010003AABBCC 将是:

  • 0x03:设备信息事件
  • 0x01:模型 ID 值
  • 0x0003:其他数据,长度为 3
  • 0xAABBCC:其他数据,模型 ID

BLE 地址

如果提供方可以获取 BLE 地址信息(用于 追溯写入 AccountKey),则在消息流 连接时以及每次地址轮换时,也应将该信息发送给寻求方。例如,0x03020006AABBCCDDEEFF 将是:

  • 0x03:设备信息事件
  • 0x02:BLE 地址值
  • 0x0006:其他数据,长度为 6
  • 0xAABBCCDDEEFF:其他数据,BLE 地址

电池已更新

对于支持电池通知的提供方, 还可以通过消息流发送电池信息。当消息流连接或电池值发生变化时,应发送更新。当通过 BLE 播发电池数据时,数据包的其他数据部分应包含与字节 s + 2、s + 3、s + 4相同的数据。例如,0x0303000357417F 将是:

  • 0x03:设备信息事件
  • 0x03:电池值
  • 0x0003:其他数据,长度为 3
  • 0x57417F:其他数据,电池值
    • 0x57:左耳机值,未充电,电池电量为 87%
    • 0x41:右耳机值,未充电,电池电量为 65%
    • 0x7F:耳机盒值,未充电,电池电量未知

提供方还可以更新电池剩余时间(如果已知),例如,0x03040001F0 将是:

  • 0x03:设备信息事件
  • 0x04:电池剩余时间
  • 0x0001:其他数据,长度为 1(如果需要,可以为 uint16,长度为 2)。
  • 0xF0:其他数据,电池剩余时间(以分钟为单位),240 分钟

活跃组件

寻求方有时可能希望了解哪些组件当前处于活跃状态, 这意味着可以对这些组件执行操作(请参阅设备操作)。 当提供方收到包含活跃组件请求代码 (0x05) 的请求时,应在 1 秒内返回响应,指明提供方的当前状态。 响应将使用活跃组件响应代码 (0x06),并包含其他数据,指明哪些组件可用。

对于只有一个组件的提供方,如果该组件不可用,则应将其他数据设置为 0x00。例如,在低功耗模式下,系统不会执行媒体播放。否则,应将其他数据设置为 0x01。

对于具有多个组件的耳机(例如,左耳机和右耳机),其他数据中的每个位都表示该组件是否处于活跃状态。例如,如果耳机在充电盒中且未使用,则该耳机可能处于非活跃状态。具体来说,对于左耳机和右耳机:

  • 0x00 (0b00000000):两个耳机均处于非活跃状态
  • 0x01 (0b00000001):右耳机处于活跃状态,左耳机处于非活跃状态
  • 0x02 (0b00000010):左耳机处于活跃状态,右耳机处于非活跃状态
  • 0x03 (0b00000011):两个耳机均处于活跃状态

平台类型

提供方可能希望根据所连接的平台执行不同的操作。目前,快速配对仅通过 Android 执行,但未来可能会扩大支持范围。

该消息将在其他数据中包含一个字节,用于标识平台类型:

平台名称 值
Android 0x01

第二个字节将根据平台进行自定义。在 Android 中,它将引用 SDK 版本。例如,Android Pie 的值为 28 (0x1C)。

固件版本

提供方的固件版本,以 utf-8 编码的字符串形式表示。 它与固件修订版本特征中的信息相同。

当前 FHN 临时标识符

播发 FHN 帧的提供方应报告当前的 FHN 临时标识符 (EID) 及其当前时钟值,以便在时钟漂移(例如,由于电池耗尽)时与寻求方同步。

例如:

  • 0x03:设备信息事件
  • 0x0B:当前 FHN 临时标识符消息
  • 0x0018:其他数据,长度为 24 或 36 字节
  • 0x13F9EA80:其他数据(时钟值;4 字节)
  • 0x1122334455667788990011223344556677889900:其他数据(当前 EID;20 或 32 字节)