设备信息

提供程序可以通过消息流将设备信息通知给搜寻者。

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

模型 ID

当 RFCOMM 连接时,应将模型 ID 信息(用于追溯写入 AccountKey)发送给查找者。例如,0x03010003AABBCC 为:

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

BLE 地址

当 RFCOMM 连接以及每当地址旋转时,也应将 BLE 地址信息(用于追溯写入 AccountKey)的 BLE 地址信息(如果有)发送给 Seeker。例如,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 编码的字符串形式表示。 此信息与固件修订特性中的信息相同。

当前 FMDN 临时标识符

通告 FMDN 帧的提供商应使用当前时钟值报告当前 FMDN 临时标识符 (EID),以便在时钟偏移(例如,因电池电量耗尽)时与查找器同步。

例如:

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