Cómo conectar y operar SIM en el desarrollo de Android
(1) Llame al IccProvider externo para leer los contactos de la tarjeta SIM.
IccProvider llama a IIccphonebook. stub como interfaz(service manager.get service("SIM phone book")) obtiene el objeto IccPhoneBook a través de la interfaz Aidl, que es implementada por el agente del administrador de interfaz ICCPhonebook. El proxy del administrador de interfaz Iccphonebook implementa la interfaz definida por IccPhoneBook.stub.
Administrador de Servicios. Llame a AddService("SIM Phonebook", this) en el constructor del proxy del administrador de interfaz ICCPhonebook para registrar la interfaz implementada por el proxy del administrador de interfaz ICCPhonebook.
(2) Lógica interna leída por el contacto de la tarjeta SIM
1. La implementación de la interfaz proxy IccPhoneBookInterfaceManger llama a la implementación de la interfaz del administrador de la interfaz ICCPhonebook
2.ICCphoneBookInterface Tanto el agente Manager y IccPhoneBookInterfaceManger se crean instancias en PhoneProxy.
3.IccPhoneBookInterfaceManger se pasa al objeto PhoneBase durante la construcción, pero este objeto Phone no participa en la operación de lectura de los contactos de la tarjeta SIM. Su función de interfaz es:
(1)getadnecordsinef//Obtener los contactos de la tarjeta SIM.
Esto se logra llamando a la función requestLoadAllAdnLike de AdnRecordCache y enviando el mensaje EVENT_LOAD_DONE.
(2)updateadncordsinefbyindex//Actualizar contacto
Esto se logra llamando a updateAndByIndex de AdnRecordCache y emitiendo EVENT_UPDATE_DONE.
4.ICChonebookInterfaceManger tiene una clase heredada SimhonebookInterfaceManger (para GSM): esta clase heredada crea una instancia del objeto AdnRecordCache en ICChonebookInterfaceManger.
5. AdnRecordLoader
PhoneBase es una variable miembro de esta clase. El controlador micfile. La función loadeflinearifixed se llama en su función miembro loadFromEF.
6. En la clase PhoneBase
IccFileHandler tiene un objeto miembro. Las clases que PhoneBase hereda son gsmPhone (para GSM) y cdmaPhone (para CDMA). Los objetos miembro de IccFileHandler se crean instancias en GSMPhone y CDMAPhone.
7. IccFileHandler
Esta clase lee contenido relevante de la tarjeta SIM, función miembro LoadEFLinearFixed.
Sus clases heredadas son SIMFileHandler (para gsm) y RuimFileHandler (para dma).
8. Registros ICC
Esta clase tiene dos clases heredadas, simRecords (para gsm) y RuimRecords (para cdma), que realizan algunas cargas desde la tarjeta SIM mediante la manipulación de datos IccFileHandler. Esta clase penetra en el objeto PhoneBase cuando se construye. Esta clase realiza la operación de cargar datos desde la tarjeta SIM a través de la variable miembro IccFileHandler de PhoneBase.
9. SIMRecords
En esta clase se monitorea el mensaje EVENT_SIM_READY. Después de recibir este mensaje, se llamará a fetchSimRecords() para leer los registros en la tarjeta SIM.
Si aún no lo entiendes, ven al grupo y habla sobre ello. Te explicaré cómo ver mi N A M E. ..