stk第4章 选择数据卡流程

本文详细解析了在设备中插入SIM卡后,系统如何通过IccCardProxy发送广播,触发SubscriptionInfoUpdater的handleSimLoaded函数,进而调用updateSubscriptionInfoByIccId函数更新卡信息。此过程包括清除旧的订阅信息、建立新的SlotId和SubId映射,并最终设置数据卡的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第4章 选择数据卡流程

1、在前文中我们提到了IccCardProxy在卡信息加载完毕后,会发送ACTION_INTERNAL_SIM_STATE_CHANGED广播。 SubscriptionInfoUpdater收到广播后,就会调用handleSimLoaded函数进行处理。

2、 SubscriptionInfoUpdater类,在handleSimLoaded函数中,主要工作将由updateSubscriptionInfoByIccId函数来承担。
updateSubscriptionInfoByIccId依次调用clearSubscriptionInfo和addSubscriptionInfoRecord函数完成实际的工作。

SubscriptionController.getInstance().clearSubInfo();

mSubscriptionManager.addSubscriptionInfoRecord(mIccId[i], i);

在该函数里面还判断插入的是第几张卡。

3、clearSubscriptionInfo主要用于清除slot Id和sub Id之间的关系。 毕竟在卡槽中重新插入一张卡后,sub Id可能发生了变化,因此需要先清理过去的缓存信息。

4、addSubscriptionInfoRecord函数调用SubscriptionManager的接口进行实际工作。SubscriptionManager首先将更新一些数据库字段, 设置一些卡界面显示所需要的信息,例如SIM卡在设置界面中的名称、颜色等。

然后,SubscriptionManager重新建立起Slot Id和Sub Id之间的映射关系。

最后,SubscriptionManager判断终端中只有一张卡时,开始设置数据、语音和短信使用的Sub Id等。
数据卡设置完毕后,SubscriptionManager将发送相应的广播信息。

5、此外,SubscriptionManager调用setDefaultDataSubId设置数据卡后,
还需要利用ProxyController的接口设置每个Phone对应的无线能力,即设置每张卡使用的协议栈。

   mSubscriptionManager.setDefaultDataSubId(   mSubscriptionManager.getDefaultDataSubscriptionId());

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值