安卓Telephony常用流程
首页 > 安卓Telephony   作者:皮皮华  2022年6月9日 9:39 星期四  热度:1387°  字号:   评论:0 条
时间:2022-6-9 9:39   热度:1387°  评论:0 条 

开关飞行模式流程


【AirplaneModeEnabler.java】
setAirplaneModeOn
mOnAirplaneModeChangedListener.onAirplaneModeChanged
@intent事件搜ACTION_AIRPLANE_MODE_CHANGED
【PhoneGlobals.java】
handleAirplaneModeChange
maybeTurnCellOff
setRadioPowerOff
PhoneUtils.setRadioPower
【PhoneUtils.setRadioPower】
phone.setRadioPower
@抽象类继承搜extends Phone
【GsmCdmaPhone.java】
mSST.setRadioPower
【ServiceStateTracker.java】
setPowerStateToDesired
mCi.setRadioPower
@接口类型搜implements CommandsInterface 看包含extends的地方
【RIL.java】
RIL_REQUEST_RADIO_POWER


打电话流程


【CellDataPreference.java】
performClick
setMobileDataEnabled
【TelephonyManager.java】
setDataEnabled
telephony.setUserDataEnabled
@搜索extends ITelephony.stub
【PhoneInterfaceManager.java】
phone.getDataEnabledSettings().setUserDataEnabled
【DataEnabledSettings.java】
updateDataEnabledAndNotify(REASON_USER_DATA_ENABLED)
notifyDataEnabledChanged
mOverallDataEnabledChangedRegistrants.notifyResult
@观察者直接搜REASON_USER_DATA_ENABLED
【DcTracker.java】
onDataEnabledChanged
setupDataOnAllConnectableApns
setupDataOnConnectableApn
trySetupData
buildWaitingApns@编译APN列表
setupData
【DataConnection.java】
dataConnection.bringUp
@在本页面搜索EVENT_CONNECT找到在函数内部DcInactiveState
connect
mDataServiceManager.setupDataCall
【DataServiceManager.java】
mIDataService.setupDataCall
@搜extends IDataService.Stub
【DataService.java】
setupDataCall
全局搜DATA_SERVICE_REQUEST_SETUP_DATA_CALL
serviceProvider.setupDataCall
@DataServiceProvider是DataService里面的抽象类,直接搜extends DataService.DataServiceProvider
【CellularDataService.java】
mPhone.mCi.setupDataCall
@搜implements CommandsInterface
【RIL.java】
setupDataCall @往RIL发送RIL_REQUEST_SETUP_DATA_CALL


开机后的卡初始化流程



【RadioIndication.java】
simStatusChanged
mRil.mIccStatusChangedRegistrants.notifyRegistrants()
@观察者搜mIccStatusChangedRegistrants
【BaseCommands.java】
registerForIccStatusChanged
EVENT_ICC_STATUS_CHANGED
@搜索EVENT_ICC_STATUS_CHANGED的事件处理,一般都在handleMessage中
getIccCardStatus
EVENT_GET_ICC_STATUS_DONE
onGetIccCardStatusDone
【UiccController.java】
mUiccSlots[slotId].update
【UiccSlot.java】
mUiccCard.update
【UiccCard.java】
mUiccProfile.update
updateIccAvailability
【UiccProfile.java】
updateExternalState
setExternalState(IccCardConstants.State.READY)
setExternalState
UiccController.updateInternalIccState
【UiccController.java】
updateInternalIccState
subInfoUpdator.updateInternalIccState(getIccStateIntentString)
@getIccStateIntentString获取状态并转换IccCardConstants.INTENT_VALUE_ICC_READY
【SubscriptionInfoUpdater.java】
internalIccStateToMessage
@状态转换为EVENT_SIM_READY并发送消息
sendMessage
handleMessage
updateEmbeddedSubscriptions
SubscriptionController.getInstance().notifySubscriptionInfoChanged

@当事件为EVENT_SIM_LOADED时
EVENT_SIM_LOADED
handleSimLoaded
SubscriptionController.getInstance().setMccMnc
【SubscriptionController.java】
setMccMnc
refreshCachedActiveSubscriptionInfoList
notifySubscriptionInfoChanged
@以下为谁在关注此事件
tr.notifySubscriptionInfoChanged
【TelephonyRegistry.java】
r.onSubscriptionsChangedListenerCallback.onSubscriptionsChanged()
@搜IOnSubscriptionsChangedListener.stub
【SubscriptionMonitor.java】
mSubscriptionsChangedRegistrants[phoneId].notifyRegistrants()
registerForSubscriptionChanged
【TelephonyNetworkFactory.java】
mSubscriptionMonitor.registerForSubscriptionChanged
EVENT_SUBSCRIPTION_CHANGED
onSubIdChange
setCapabilityFilter
【NetworkFactory.java】
CMD_SET_FILTER
handleSetFilter



 您阅读这篇文章共花了: 
捐赠支持:如果觉得这篇文章对您有帮助,请“扫一扫”鼓励作者!
 本文无需标签!
二维码加载中...
本文作者:皮皮华      文章标题: 安卓Telephony常用流程
本文地址:http://huazai.eleuu.com/?post=57
版权声明:若无注明,本文皆为“皮皮华博客”原创,转载请保留文章出处。

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗

评论信息框


既然没有吐槽,那就赶紧抢沙发吧!