在运行时更改功能

由于可以通过升级提供程序中的固件来启用新功能(例如动态缓冲区大小调整),因此我们希望提供一种在运行时获取提供程序功能的方法。为避免重复查询功能,首先,提供程序应在连接后通过消息流将固件修订版本发送给 Seeker。因此,我们向现有消息组的设备信息事件添加了一个新的消息代码。

消息组名称
设备信息事件 0x03
信息代码名称
固件版本 0x09

获得固件修订版本代码后,探索器应对照已缓存的代码进行检查。如果固件修订版本已更改,Seeker 将更新缓存的固件修订版本,并通过消息流查询功能。

我们还允许 Provider 在不先提出请求的情况下直接将功能推送到搜索程序,因为我们认为将来,更复杂的设备(可能是基于 Android)的设备将根据同一固件修订版本的标志进行动态配置。

因此,我们在下方添加新的消息组和消息代码。

消息组名称
设备功能同步事件 0x06
信息代码名称
请求功能更新(从 Seeker 发送) 0x01
FMDN 跟踪 0x03

收到0x0601后,

  • 如果提供方已启用对 FMDN 跟踪的支持,它应做出如下响应:
八位字节 数据类型 说明
0 uint8 设备功能同步事件 0x06
1 uint8 FMDN 跟踪 0x03
2-3 个 uint16 额外的数据长度 0x0007
4 uint8 FMDN 配置状态 如果未配置,则为 0x00;如果由任何账号配置,则为 0x01
5 - 10 uint8[] 设备当前的 BLE MAC 地址 不固定