如何区分微信语音通话和来电消息---QCC51xx系列
本文适用范围
ALL
问题/功能描述
如何区分来电和微信语音通话,以便区分对待?
实现方案
来电和微信通话都是使用HFP协议,在接通后,从耳机端看来都是SLC链路,没有任何区别,所以两者的区分只能在接通前。
这是一个比较简单的方法,使用来电号码区分。通过观察我们发现在来电时可以获取到电话号码,微信语音是没有号码信息的。
详细步骤
- 首先在HFP初始化时勾选支持来电号码显示功能
#ifdef ENHANCED_ANC_USE_2ND_DAC_ENDPOINT
OperatorsSplitterEnableSecondOutput(theKymera->output_splitter, TRUE);
/* Finally start the operators */
Operator op_list[] = {theKymera->usb_rx, theKymera->anc_tuning, theKymera->output_splitter, theKymera->usb_tx};
PanicFalse(OperatorStartMultiple(4, op_list, NULL));
#else
Operator op_list[] = {theKymera->usb_rx, theKymera->anc_tuning, theKymera->usb_tx};
PanicFalse(OperatorStartMultiple(3, op_list, NULL));
#endif
/* Ensure audio amp is on */
appKymeraExternalAmpControl(TRUE);
/* Set kymera lock to prevent anything else using kymera */
appKymeraSetAncStartingLock(theKymera);
}
void KymeraAnc_TuningDestroyChain(const KYMERA_INTERNAL_ANC_TUNING_STOP_T *msg)
{
#ifndef ENABLE_USB_DEVICE_FRAMEWORK_IN_ANC_TUNING
PanicNotNull(msg);
#endif
if(appKymeraGetState() == KYMERA_STATE_ANC_TUNING)
{