设备信息

提供商可以通过消息流向查找者发送设备信息。

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

模型 ID

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

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

BLE 地址

在 RFCOMM 连接时以及每次轮替地址时,还应向 Seeker 发送 BLE 地址信息(用于回溯写入 AccountKey),如果有的话。例如,0x03020006AABBCCDDEEFF 将为:

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

电池已更新

对于支持电池通知的提供程序,还可以通过 RFCOMM 发送电池信息。当 RFCOMM 连接或电池值发生变化时,应发送更新。通过 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) 及其当前的时钟值,以便在时钟漂移(例如因电池电量耗尽而导致)时与 Seeker 同步。

例如:

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