HFP协议说的是蓝牙电话顾名思义就是使用蓝牙技术实现电话拨打相关功能,具体应用在车载蓝牙,蓝牙音箱,蓝牙手环,蓝牙耳机等设备上,本人做过蓝牙音箱,所以这篇主要蓝牙音箱为第一视角讲解蓝牙通话相关内容。
Hands-Free Profile简称HFP,蓝牙免提协议故一定了免提设备控制电话相关操作,这里的面体设备指得就是相关的蓝牙设备(如蓝牙音箱,车载蓝牙)。详细描述请参考协议文档<HFP_v1.7.0.pdf>
Configuration and Roles
HFP中有两个角色:
The following roles are defined for this profile:
Audio Gateway (AG) – This is the device that is the gateway of the audio, both for input and output. Typical devices acting as Audio Gateways are cellular phones.
Hands-Free unit (HF) – This is the device acting as the Audio Gateway’s remote audio input and output mechanism. It also provides some remote control means
上述的角色定义是从HFP协议文档给出来的,不明白没有关系举个例子就知道了,那蓝牙音箱(耳机)为例,蓝牙音箱和手机相连,那么手机的角色是AG,音箱(耳机)的角色就是HF
HFP协议的连接那么HF侧和AG侧如何进行连接通信,由下面的图解带大家分析下
连接具体流程如下图:
手机的音频的连接AG和HF侧都可以发起,连接过程中的消息交互及流程答题相同。本篇文章没有特殊声明,第一视角都是蓝牙音箱HF侧分析起点,上图的SLC(Service Level Connection)建立代表HFP连接成功。
下面我抓了HFP通话的话带大家走上述提到的流程所涉及的报文
ACL链路建立这个包的含义是控制器给协议栈发送蓝牙ACL连接请求