sim卡联系人读取流程

本文详细解析了SIM卡联系人读取流程,包括外部读取SIM卡联系人的途径,内部逻辑如IccPhoneBookInterfaceMangerProxy的实现方式,以及SIM卡联系人读取的具体步骤和相关类的作用。

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

SIM卡联系人读取流程

源代码路径  frameworks/base/telephony/java/com/android/internal/telephony/


联系人的标记为EF_ADN

(一)、外部读取sim卡联系人是通过IccProvider来调用的

而IccProvider是通过aidl的接口调用IIccPhoneBook.Stub.asInterface(ServiceManager.getService(“simphonebook”))来得到IccPhoneBook的对象,这个对象的实现是由IccPhoneBookInterfaceMangerProxy来实现的。IccPhoneBookInterfaceMangerProxy实现了IccPhoneBook.stub定义的接口

在IccPhoneBookInterfaceMangerProxy的构造函数中调用了ServiceManager.addService(“simphonebook”,this)来注册了IccPhoneBookInterfaceMangerProxy实现的接口。

 

(二)、sim卡联系人读取的内部逻辑

1、IccPhoneBookInterfaceMangerProxy接口实现调用IccPhoneBookInterfaceManger接口实现

2、IccPhoneBookInterfaceMangerProxy和IccPhoneBookInterfaceManger都是在PhoneProxy中被实例化的。

3、IccPhoneBookInterfaceManger在构造的时候被传进了一个PhoneBase的对象,但这个Phone对象并没有参与sim卡联系人的读取操作。它的接口函数有:

(1)getAdnRecordsInEf //获取sim联系人

通过调用AdnRecordCache的requestLoadAllAdnLike函数来实现的,并发出EVENT_LOAD_DONE的消息

(2)updateAdnRecordsInEfByIndex //更新联系人

通过调用AdnRecordCache的updateAndByIndex来实现的,并发出EVENT_UPDATE_DONE

4、IccPhoneBookInterfaceManger有个继承类SimPhoneBookInterfaceManger(for gsm):这个继承类实例化了IccPhoneBookInterfaceManger中AdnRecordCache的对象

5、AdnRecordLoader

PhoneBase是这个类的一个成员变量,其成员函数loadFromEF中调用了PhoneBase.mIccFileHandler.loadEFLinearFixed函数

 

6、在PhoneBase类中

有一个IccFileHandler的成员对象,PhoneBase的继承类有GSMPhone(for gsm)和CDMAPhone(for cdma)。IccFileHandler的成员对象是在GSMPhone和CDMAPhone实例化的。

 

7、IccFileHandler

此类从sim卡读取相关内容,成员函数LoadEFLinearFixed

它的继承类SIMFileHandler(for gsm)和RuimFileHandler(forcdma)

 

8、IccRecords

这个类有两个继承类SIMRecords(for gsm)和RuimRecords(for cdma)通过IccFileHandler执行了一些从sim卡加载数据的操作。这个类在构造的时候穿入了PhoneBase的对象,这个类通过PhoneBase的成员变量IccFileHandler执行从sim卡加载数据的操作

 

9、SIMRecords

在这个类中监听了EVENT_SIM_READY消息,收到这个消息后会调用fetchSimRecords()来读取sim卡中的records

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值