ACL 链路建好、配对鉴权完成,蓝牙连接就算彻底跑通了吗?远没有。协议栈在连接建立之后还有一系列可选活动,从加密开关到密钥更新,从对端特性探测到时钟偏移记录,每一步都直接关系到后续业务能否顺畅跑起来。这些流程藏在协议规范的消息序列图里,平时很少有人系统梳理,但一旦出问题——比如重连后没加密、通话建立后 eSCO 协商失败——根因往往就藏在这里。
目录
一、链路监督超时:给连接装一个心跳闹钟
1.1 流程拆解
1.2 log对照
1.3 为什么要关注
二、加密开关:一键加锁,一键解锁
2.1 开启加密
2.2 关闭加密
2.3 实测对照
三、换钥不换锁:连接密钥的两种更新方式
3.1 直接换钥
3.2 暂停加密后换钥
3.3 与角色切换加密恢复的关系
四、临时密钥:用完即弃的一次性通行证
4.1 切换到临时密钥
4.2 切回半永久密钥
五、摸清对端底细:读取远程特性
5.1 基础特性读取
5.2 扩展特性读取
六、时钟偏移:为下次寻呼预留捷径
6.1 Central 发起读取
6.2 Peripheral 发起读取
6.3 实测log
七、实战串联:一次 HFP 通话的完整建立
八、知识图谱:八个流程的关系
九、测验
本文覆盖链路监督超时、加密控制、连接密钥更换、临时密钥切换、远程特性读取和时钟偏移获取共八个流程,并结合真实 HCI snoop 和空口日志进行对照解读。
一、链路监督超时:给连接装一个心跳闹钟
蓝牙连接不是建好就一劳永逸的。链路层通过轮询机制持续确认对端在线,一旦长时间收不到对方响应,就得主动断开——这个判定阈值就是 Link Supervision Timeout。
1.1 流程拆解
Central 侧的 Host 通过 HCI_Write_Link_Supervision_Timeout 命令设定超时值。<