SIM卡加载流程__2019.10.05

 原文链接:https://www.jianshu.com/p/d11fb30eeb12

                 UiccController
                       #
                       |
                  UiccCard
                       #     #
                       |     ------------------
           UiccCardApplication    CatService
                     #                #
                     |                |
                IccRecords       IccFileHandler
             ^ ^ ^                 ^ ^ ^ ^ ^
SIMRecords---- | |           | | | | ---SIMFileHandler
RuimRecords----- |           | | | ----RuimFileHandler
IsimUiccRecords---           | | -----UsimFileHandler
                             | ------CsimFileHandler
                             ----IsimFileHandler

1、开机后Phone额进程拉起之后,PhoneFactory创建UiccController。
2、当PhoneFactory传进GsmCdmaPhone之后,在GsmCdmaPhone的构造函数中创建UiccController的观察者,IccCardProxy将作为UiccController,同时监听卡状态的变化。
3、当底层检卡成功后即有ATR上报后,modem主动发送RIL_UNSOL_SIM_STATUS_CHANGE的消息,此事RIL将此消息通知到它的观察者UiccController。
4、UiccController收到通知之后将向磨的么进一步查询获取卡的信息。
5、信息获取成功之后,将进一步判断是否需要创建UiccCard对象,如果创建过则进行更新,否则UiccController将根据卡信息创建对应的UiccCard对象。
6、UiccCard对象创建之后,将在其构造函数中进一步创建对应的UiccCardApplication和IccRecords。
IccRecords只是一个抽象类,UiccCardApplication将更具modem上报的卡类型创建出实际的SIMRecords或RuimRecords或IsimUiccRecords等
当IccRecords被创建之后,同样作为RIL的观察者,监听Iccrefresh的消息
7、UiccController完成这些之后卡信息还未完全加载完毕,将进一步通知IccCardProxy对象,IccCardProxy收到通知之后注册成为IccRecords的观察者。
8、收到modem主动上报的RIL_UNSOL_SIM_REFRESH消息之后,RIL将通知观察者IccRecoeds。IccRecoeds收到通知后将进一步主动与modem获取卡信息 。
9、当卡信息加载完成之后,IccRecords将通知他的观察者。IccCardProxy收到通知之后将发送ACTION_INTERNAL_SIM_STATE_CHANGE广播,完了之后将触发数据卡选择流程。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值