设备信息
提供程序可以通过消息流将 Seer 的相关信息告知设备。
消息组名称 | 值 |
---|---|
设备信息事件 | 0x03 |
设备信息代码名称 | 值 |
---|---|
模型 ID | 0x01 |
BLE 地址已更新 | 0x02 |
电池已更新 | 0x03 |
剩余电量 | 0x04 |
活跃组件请求 | 0x05 |
活跃组件响应 | 0x06 |
功能 | 0x07 |
平台类型 | 0x08 |
模型 ID
当 RFCOMM 连接时,应将模型 ID 信息(用于追溯性地写入 AccountKey)发送给跳转器。例如,0x03010003AABBCC
为:
- 0x03:设备信息事件
- 0x01:模型 ID 值
- 0x0003:其他数据,长度为 3
- 0xAABBCC:其他数据,型号 ID
BLE 地址
当 RFCOMM 连接和每次轮替地址时,还应将 BLE 地址信息(用于追溯写入帐号密钥)(如果有)发送给查找器。例如,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):两侧耳机都处于活动状态
功能
提供程序有时可能希望了解其所连接的 Seek 支持的功能。在这种情况下,搜索器会在连接时向提供程序发送功能消息,以提供该信息。
该消息包含一个位元列表,用于指明有哪些功能:
- 位 0:如果已安装配套应用,则为 1;否则为 0
- 位 1:如果支持静音模式,则为 1;否则为 0
- 所有其他位保留以供将来使用,并且应设置为 0
例如,未安装配套应用但支持静默模式的 Seeker 将在连接时发送 0x0307000102
:
- 0x03:设备信息事件
- 0x07:功能值
- 0x0001:其他数据,长度为 1
- 0x02:其他数据,支持静音模式
平台类型
提供程序可能希望根据其连接到的平台执行不同的操作。快速配对目前只能通过 Android 执行,但未来可能支持更多版本。
消息的附加数据中将包含第一个字节的平台类型:
平台名称 | 值 |
---|---|
Android | 0x01 |
第二个字节将根据平台进行自定义。在 Android 中,它指的是 SDK 版本。例如,Android Pie 的值将为 28 (0x1C)。