当前位置: 移动技术网 > IT编程>移动开发>Android > Android4.X读取SIM卡短信和联系人相关类实例分析

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

哈达瑜伽,上网提速王,养生堂20120110

本文实例讲述了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, iccutils.bytestohexstring(pdu),
   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程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网