来电流程梳理
纠结很久,要不要写来电上报的流程。因为拿不到芯片厂商的ImsService的实现,纸上谈兵太空旷了
大致的思路:
协议侧调用HAL的主动上报接口,上报来电给到ImsService.经过一系列的处理后。通过ImsCallSession.Listener回调到
MmTelFeature的notifyIncomingCallSession
frameworks\base\telephony\java\android\telephony\ims\feature\MmTelFeature.java
public final void notifyIncomingCallSession(IImsCallSession c, Bundle extras) {
synchronized (mLock) {
if (mListener == null) {
throw new IllegalStateException("Session is not available.");
}
try {
mListener.onIncomingCall(c, extras);
} catch (RemoteException e) {
throw new RuntimeException(e);
}
}
}
frameworks\base\telephony\java\android\telephony\ims\feature\MmTelFeature.java
public void callSessionUpdated(ImsCallSession session, ImsCallProfile profile) {
logi("callSessionUpdated :: session=" + session + " profile=" + profile);
if (isTransientConferenceSession(session)) {
logi("callSessionUpdated :: not supported for transient conference session=" +
session);
return;
}
ImsCall.Listener listener;
synchronized(ImsCall.this
Android来电流程分析

这篇博客主要梳理了Android系统中来电的处理流程,从协议侧调用HAL主动上报接口,到ImsService,接着通过ImsCallSession监听回调,涉及的源代码路径包括MmTelFeature、ImsPhoneCallTracker、ImsPhoneBase、Phone以及TelephonyConnection等关键组件。
最低0.47元/天 解锁文章
4318

被折叠的 条评论
为什么被折叠?



