设备信息
提供程序可以通过消息流将设备信息通知给搜寻者。
消息组名称 | 值 |
---|---|
设备信息事件 | 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 + 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 编码的字符串形式表示。 此信息与固件修订特性中的信息相同。
当前 FMDN 临时标识符
通告 FMDN 帧的提供商应使用当前时钟值报告当前 FMDN 临时标识符 (EID),以便在时钟偏移(例如,因电池电量耗尽)时与查找器同步。
例如:
- 0x03:设备信息事件
- 0x0B:当前的 FMDN 临时标识符消息
- 0x0018:其他数据,长度为 24 或 36 字节
- 0x13F9EA80:其他数据(时钟值;4 个字节)
- 0x1122334455667788990011223344556677889900:其他数据(当前 EID;20 或 32 个字节)