本文实例讲述了Android4.X读取SIM卡短信和联系人相关类。分享给大家供大家参考,具体如下: 1. IccSmsInterfaceManager 这个类的主要作用有两个 <1>通过 SMSDispatcher,发送短信数据 IccSmsInterfaceManager 是一个Binder 服务类,Binder接口是 ISms. 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对象。 可以这么理解,每次SIM卡状态发生变化后,UiccController 首先通过UiccCardApplication 更新SIM卡的状态以及更新从SIM卡里读取的数据。然后,再通知UiccController 的监听者(PhoneBase,IccCardProxy),告诉他们SIM卡的相关数据已经发生了改变,他们可以更新这些数据(IccRecords)。 希望本文所述对大家Android程序设计有所帮助。 |