设备信息

提供商可以通过消息流向寻求者通知设备信息。

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

模型 ID

模型 ID 信息(用于追溯写入 AccountKey)应在消息流连接时发送给 Seeker。例如,0x03010003AABBCC 将为:

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

BLE 地址

如果可用,还应在消息流连接时以及每次地址轮换时将 BLE 地址信息(用于追溯写入 AccountKey)发送给 Seeker。例如,0x03020006AABBCCDDEEFF 将为:

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

电池已更新

对于支持电池通知的提供方,电池信息也可以通过消息流发送。当消息流连接或电池值发生变化时,应发送更新。数据包的附加数据部分应包含与通过 BLE 广播电池数据时字节 s + 2s + 3s + 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 字节)