Android4.X读取SIM卡短信和联系人相关类实例分析

Android4.X读取SIM卡短信和联系人相关类实例分析,第1张

概述本文实例讲述了Android4.X读取SIM卡短信和联系人相关类。分享给大家供大家参考,具体如下:

本文实例讲述了AndroID4.X读取SIM卡短信和联系人相关类。分享给大家供大家参考,具体如下:

1. IccSmsInterfaceManager

这个类的主要作用有两个

<1>通过 SMSdispatcher,发送短信数据
<2>更新和查询SIM卡的短信数据

IccSmsInterfaceManager 是一个Binder 服务类,Binder接口是 ISms.
IccSmsInterfaceManager 被创造时 Binder服务会被注册。
IccSmsInterfaceManager 在PhonProxy 中被创建,并且持有对应的PhoneBase 对象。
读取SIM卡上的短信数据时,是通过 PhoneBase的IccfileHandler 去读取的,IccfileHandler 调用 RIL 对象去向Modem 发命令,相关代码如下:

fh.loadEFlinearFixedAll(IccConstants.EF_SMS,response);

向SIM卡保存短信数据时,是通过 PhoneBase 的RIL 对象去 *** 作的,RIL对象向Modem 发命令。相关代码如下:

if (PhoneConstants.PHONE_TYPE_GSM == mPhone.getPhoneType()) { mPhone.mCi.writeSmsToSim(status,IccUtils.bytesToHexString(smsc),IccUtils.bytesToHexString(pdu),response);} else { mPhone.mCi.writeSmsToRuim(status,response);}

2. IccPhoneBookInterfaceManagerProxy

这个类主要用于更新和查询SIM卡上的联系人数据.它是IccPhoneBookInterfaceManager的代理。IccPhoneBookInterfaceManager 是一个Binder服务。根据PhoneBase 的不同,IccPhoneBookInterfaceManager有两个实现类,SimPhoneBookInterfaceManager 和 RuimPhoneBookInterfaceManager.IccPhoneBookInterfaceManager 在 PhoneBase 对象的创造过程中构造,他会持有一个PhoneBase对象。

IccPhoneBookInterfaceManagerProxy 在PhoneProxy 对象的创造过程中构造。IccPhoneBookInterfaceManagerProxy的创造过程中完成 Binder 服务 IccPhoneBookInterfaceManager的注册,并且持有 IccPhoneBookInterfaceManager对象。
IccPhoneBookInterfaceManager持有一个 AdnRecordCache. 对象。这个对象来自于IccRecords 。IccRecords 来自于 PhoneBase 对象。PhoneBase 通过监听 UiccController 的状态来更新对应 SIM卡的IccRecords.

可以这么理解,每次SIM卡状态发生变化后,UiccController 首先通过UiccCardApplication 更新SIM卡的状态以及更新从SIM卡里读取的数据。然后,再通知UiccController 的监听者(PhoneBase,IccCardProxy),告诉他们SIM卡的相关数据已经发生了改变,他们可以更新这些数据(IccRecords)。

希望本文所述对大家AndroID程序设计有所帮助。

总结

以上是内存溢出为你收集整理的Android4.X读取SIM卡短信和联系人相关类实例分析全部内容,希望文章能够帮你解决Android4.X读取SIM卡短信和联系人相关类实例分析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1142223.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存