设备信息

提供程序可以通过消息流将 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 + 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):两侧耳机都处于活动状态

功能

提供程序有时可能希望了解其所连接的 Seek 支持的功能。在这种情况下,搜索器会在连接时向提供程序发送功能消息,以提供该信息。

该消息包含一个位元列表,用于指明有哪些功能:

  • 位 0:如果已安装配套应用,则为 1;否则为 0
  • 位 1:如果支持静音模式,则为 1;否则为 0
  • 所有其他位保留以供将来使用,并且应设置为 0

例如,未安装配套应用但支持静默模式的 Seeker 将在连接时发送 0x0307000102

  • 0x03:设备信息事件
  • 0x07:功能值
  • 0x0001:其他数据,长度为 1
  • 0x02:其他数据,支持静音模式

平台类型

提供程序可能希望根据其连接到的平台执行不同的操作。快速配对目前只能通过 Android 执行,但未来可能支持更多版本。

消息的附加数据中将包含第一个字节的平台类型:

平台名称
Android 0x01

第二个字节将根据平台进行自定义。在 Android 中,它指的是 SDK 版本。例如,Android Pie 的值将为 28 (0x1C)。