广播上报时序图
下面以场景为视角简单分析上述两点在其中的作用及流程,编码方式都是mSBC。
1、 拨打电话-AG
拨打电话大体分为拨号、响铃、通话这三个部分,状态变化后AG侧都会主动通知HF侧,HF侧再通过"AT CLCC"获取详细的电话参数信息。
2、 拨打电话-HF
HF侧的拨打电话和AG侧比较起来就多了一个步骤,通过AT命令"ATD"将需要拨打的电话信息发送到AG侧,然后通过手机的电话模块呼出电话。
蓝牙电话应用层调用BluetoothHeadsetClient.dial()后,只需监听相应广播即可。
3、 接听电话
来电接听这里还需要我们了解In-Band Ring来电响铃功能,该功能支持在来电时将手机上设置的响铃铃声通过蓝牙传送到HF侧,从而在设备端播出该铃声。AG在"BRSF"交互features时,如果In-Band Ring Tone Capability标志位设置成 true 则代表支持该功能,所以蓝牙电话应用根据自身的配置来进行取舍。
接听来电的方式就两种,手机上接听或车机来电提醒界面(车机语音控制)接听,这样的话HF侧的操作流程对比AG侧也就是多了步将接听的动作以AT命令"ATA"发送给手机执行接听流程。
车载端接听来电则蓝牙电话应用层调用BluetoothHeadsetClient.acceptCall()后监听相应广播即可。
HF侧接听来电-In-Band Ringing:
HF侧接听来电-No In-Band Ringing: