HFP:不活跃的车载设备在打电话时,不能挂断电话

5 篇文章 1 订阅
1 篇文章 0 订阅

Android P:Only active device can hung up call .
非 active device 不能挂断电话。

step1:车载先连接 手机
step2:蓝牙耳机再连接手机
step3:辅助机电话呼叫测试机
现象:车载接听和挂断电话按钮触摸无效,蓝牙耳机正常。

原因:Android P的时候,Google确实没有这样设计。
但是Android Q已叠加此功能。修改如下,可根据自己公司的方案自行修改,注释掉961到969的部分,亦可实现“非active device”的设备,也能挂断电话的操作。

system/bt/btif/src/btif_av.cc

923    switch (cmd) {
924      case BTA_AG_AT_A_EVT:
925      case BTA_AG_SPK_EVT:
926      case BTA_AG_MIC_EVT:
927      case BTA_AG_AT_CBC_EVT:
928        /* send OK */
929        bta_ag_send_ok(p_scb);
930        /** M: cancel ring after recive ATA. @{ */
931        if (cmd == BTA_AG_AT_A_EVT) {
932           alarm_cancel(p_scb->ring_timer);
933           /** M: Create SCO right after receiving ATA command @{ */
934  #if defined(MTK_INTEROP_EXTENSION) && (MTK_INTEROP_EXTENSION == TRUE)
935           if (interop_mtk_match_addr_name(INTEROP_MTK_HFP_CREATE_SCO_AFTER_ATA,
936               &(p_scb->peer_addr))) {
937               APPL_TRACE_DEBUG("%s SCO open right after AT_A command.", __func__);
938               bta_ag_sco_open(p_scb, tBTA_AG_DATA::kEmpty);
939           }
940  #endif
941           /** @} */
942  
943        }
944        /** @} */
945        /** M: Ignore the immediate mute command. @{ */
946        // Some device send VGS/VGM = 0 when connected HFP, this
947        // will cause no voice for call, so ignore the command in a while
948        // after HFP connected.
949        if (((cmd == BTA_AG_SPK_EVT) || (cmd == BTA_AG_MIC_EVT))
950             && (val.num == 0)) {
951          long cur_time = time(NULL);
952          if (cur_time - hfp_conn_time < 2) {
953            event = 0;
954            APPL_TRACE_DEBUG("%s: ignoring VGS/VGM=0 within 2s after connection", __func__);
955          }
956        }
957        /** @} */
958        break;
959  
960      case BTA_AG_AT_CHUP_EVT:
961        if (!bta_ag_sco_is_active_device(p_scb->peer_addr)) {
962          LOG(WARNING) << __func__ << ": AT+CHUP rejected as " << p_scb->peer_addr
963                  << " is not the active device";
964          event = 0;
965          bta_ag_send_error(p_scb, BTA_AG_ERR_OP_NOT_ALLOWED);
966        } else {
967          bta_ag_send_ok(p_scb);
968        }
969        break;
970 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值