未开通Volte时的拨打/接通电话——CU

本文详细探讨了在未开通VoLTE的情况下,手机拨打电话和接听电话的过程。从AP侧分析了通话状态的变化,包括CALL_STATE_IDLE, CALL_STATE_OFFHOOK, CALL_STATE_RINGING,并指出在电话接通时如何准确判断。同时,描述了Modem侧的网络切换,如从4G到CDMA的转换,以及各种挂断情况下的信令流程。" 108787637,6116114,快速去除图像白色背景:两步高效解决方案,"['图像处理', 'Adobe Photoshop', '设计工具', '图像编辑']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 AP侧
通话主要是针对拨出的电话。想要在接通的时候给出震动提示那么就需要知道通话何时是被接通的,这样才能在进入该状态后给出提示。但SDK中并没有直接获得这种状态的方式。SDK中的TelephonyManager类提供了3种电话的状态.
CALL_STATE_IDLE 空闲状态
CALL_STATE_OFFHOOK 摘机状态
CALL_STATE_RINGING 响铃状态
拨出电话的时候,会输入这么几条log,拨号->提醒->活动
拨号:GET_CURRENT_CALLS id=1,DIALING
提醒:GET_CURRENT_CALLS id=1,ALERTING
活动:GET_CURRENT_CALLS id=1,ACTIVE

电话接通时会进入活动状态,并会输出:GET_CURRENT_CALLS id=1,ACTIVE 这条log。
在拨号开始到电话接通这段时间内会经过多次的拨号->提醒->活动,仅当话筒中嘟声响起后GET_CURRENT_CALLS这条日志会锁定在ALERTING,在通话接通之前会出现多次的GET_CURRENT_CALLS ACTIVE 这样的日志,而仅有一次是电话接通产生的。不能只是单纯的抓取GET_CURRENT_CALLS ACTIVE 这样的信息来判断。

1.1 主动打电话,主动挂断

//处于4G制式
Line 10337: 08-13 18:16:49.865  2310  2560 D RILJ    : [5233]> VOICE_REGISTRATION_STATE [SUB0]
Line 10409: 08-13 18:16:49.935  2310  2396 D RILJ    : [5233]< VOICE_REGISTRATION_STATE {.regState = REG_HOME, .rat = 14, .cssSupported = false, .roamingIndicator = 1, .systemIsInPrl = -1, .defaultRoamingIndicator = -1, .reasonForDenial = 0, .cellIdentity = {.cellInfoType = LTE, .cellIdentityGsm = [], .cellIdentityWcdma = [], .cellIdentityCdma = [], .cellIdentityLte = [{.base = {.mcc = 460, .mnc = 01, .ci = 196186673, .pci = 186, .tac = 37147, .earfcn = 1650}, .operatorNames = {.alphaLong = CHN-UNICOM, .alphaShort = UNICOM}, .bandwidth = 2147483647}], .cellIdentityTdscdma = []}} [SUB0]
//modem主动上报状态
Line 10494: 08-13 18:17:23.938  2310  2396 D RILJ    : [UNSL]< UNSOL_DATA_CALL_LIST_CHANGED [{.status = NONE, .suggestedRetryTime = -1, .cid = 0, .active = 1, .type = IPV4V6, .ifname = rmnet_data1, .addresses = 10.62.170.136/28, .dnses = 221.11.1.67 221.11.1.68, .gateways = 10.62.170.137, .pcscf = , .mtu = 1500}] [SUB0]	
Line 10659: 08-13 18:17:31.808  2310  2310 D GsmCdmaCallTracker: [0] update phone state, old=IDLE new=IDLE
Line 10667: 08-13 18:17:31.809  2310  2310 D GsmCdmaConnection: [GsmCdmaConn] acquireWakeLock
//拨号
Line 10669: 08-13 18:17:31.811  2310  2310 D RILJ    : [5241]> DIAL [SUB0]
Line 10670: 08-13 18:17:31.811  2310  2310 D GsmCdmaCallTracker: [0] update phone state, old=IDLE new=OFFHOOK	
Line 10685: 08-13 18:17:31.821  2310  2396 D RILJ    : [UNSL]< UNSOL_RESPONSE_CALL_STATE_CHANGED [SUB0]	
Line 10700: 08-13 18:17:31.843  2310  2396 D RILJ    : [5241]< DIAL  [SUB0]
Line 10701: 08-13 18:17:31.844  2310  2310 D RILJ    : [5244]> GET_CURRENT_CALLS [SUB0]
Line 10703: 08-13 18:17:31.845  2310  2396 D RILJ    : [UNSL]< UNSOL_RESPONSE_CALL_STATE_CHANGED [SUB0]
Line 10707: 08-13 18:17:32.085  2310  2396 D RILJ    : [5244]< GET_CURRENT_CALLS {[id=1,DIALING,toa=129,norm,mo,0,voc,noevp,,cli=1,,3,audioQuality=0] } [SUB0]
Line 10708: 08-13 18:17:32.085  2310  2310 D GsmCdmaCallTracker: Event EVENT_POLL_CALLS_RESULT Received
Line 10713: 08-13 18:17:32.090  2310  2310 D GsmCdmaConnection: [GsmCdmaConn] parent= DIALING, newParent= DIALING
Line 10716: 08-13 18:17:32.090  2310  2310 D GsmCdmaConnection: [GsmCdmaConn] update: parent=DIALING, hasNewParent=false, wasConnectingInOrOut=true, wasHolding=false, isConnectingInOrOut=true, changed=true
Line 10717: 08-13 18:17:32.091  2310  2310 D GsmCdmaCallTracker: [0] update phone state, old=OFFHOOK new=OFFHOOK
//变为制式回落	
Line 11048: 08-13 18:17:33.184  2310  2560 D RILJ    : [5273]> VOI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值