自学内容网 自学内容网

设置静置情况下getCurrentCalls方法为何一直打印?

背景:由于设备不支持eSIM,radio log中频繁打印 getCurrentCalls,导致在测试功耗的时候,Phone进程一直在运行。
代码:Android 14源码

首先从打log的地方进行追踪,getCurrentCalls方法中

/frameworks/opt/telephony/src/java/com/android/internal/telephony/RIL.java

 @Override
1583      public void getCurrentCalls(Message result) {
   
1584          RadioVoiceProxy voiceProxy = getRadioServiceProxy(RadioVoiceProxy.class, result);
1585          if (!voiceProxy.isEmpty()) {
   
1586              RILRequest rr = obtainRequest(RIL_REQUEST_GET_CURRENT_CALLS, result,
1587                      mRILDefaultWorkSource);
1588  
1589              if (RILJ_LOGD) {
   
1590                  riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
1591              }
1592  
1593              try {
   
1594                  voiceProxy.getCurrentCalls(rr.mSerial);
1595              } catch (RemoteException | RuntimeException e) {
   
1596                  handleRadioProxyExceptionForRR(HAL_SERVICE_VOICE, "getCurrentCalls", e);
1597               }
1598          }
1599      }

先看看这个方法在什么地方有调用,然后用排除法进行追踪此方法被谁调用,搜索全局发现CallTracker.java和GsmCdmaCallTracker.java都有调用mCi.getCurrentCalls,现在一个一个来看
1.

frameworks/opt/telephony/

原文地址:https://blog.csdn.net/qq_34966875/article/details/141689530

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!