Call根据拨打网络不同, 分为normall call [通过CS网络拨打] 和 IMS call [也就是volte,通过IMS网络拨打]。
根据操作流程不同,分为主叫[MO]和被叫[MT].
一、MO call [往外拨打电话]
1. 整体状态流转 :
DIALING -----------> ALERTING-----------> ACTIVE ---------->HANGUP
2. 整体结构: [图中文件根据log的主要体现列出,并非全部文件哦]
3. 重点关注telephony 部分
1. TelephonyConnectionService.java .
dial事件从Telecom 传到 Telephony,的入口就在TelephonyConnectionService中onCreateOutgoingConnection()这个函数。
a.这个函数会get真正的telephony的phone对象;
b.会通过CarrierConfigManager获取carrierConfig;
c.会检查radio的状态
d.会创建TelephonyConnection。
2.GsmCdmaPhone.java
<