VOS_VOID TAF_MSG_RcvMmaCsServiceChangeNotify( struct MsgCB *pstMsg ) { MMA_MSG_CS_SERVICE_IND *pstCsServInd = VOS_NULL_PTR; VOS_UINT8 ucUsimtatus; MN_MSG_USIM_POWER_STATE_ENUM_U8 enPowerState; pstCsServInd = (MMA_MSG_CS_SERVICE_IND*)pstMsg; ucUsimtatus = TAF_MSG_GetUsimStatus(); MN_MSG_GetUsimPowerState(&enPowerState); /* 卡不存在,不需要更新短信能力和USIM文件 */ if (MN_MSG_SIM_NOT_EXIST == ucUsimtatus) { return; } if (TAF_CS_OFF == pstCsServInd->enCSState) { /* CS域能力不可用时,认为短信功能关闭 */ MN_MSG_SetCloseSMSFeature(MN_MSG_NVIM_ITEM_ACTIVE); } else { /* CS域能力可用时,需要重新读下NV,以NV的值为准 */ MN_MSG_CloseSmsCapabilityFeatureInit(); /* 同步USIM文件,同步USIM文件是有顺序的,先读EF_SMS_SMSS_ID, 收到回复后,会在MSG_ProcEfSmssGetFileRsp中给下一个文件发送读文件请求 为了避免重复初始化,需要在上电已完成时,同步USIM文件 */ if (MN_MSG_USIM_POWER_ON == enPowerState) { MN_MSG_GetUsimParmReq(EF_SMS_SMSS_ID); } } return; }
LOCAL VOS_VOID MSG_GetEfCnfTimeout( VOS_UINT32 ulParam ) { MN_MSG_USIM_POWER_STATE_ENUM_U8 enPowerState; MN_MSG_GetUsimPowerState(&enPowerState); switch (enPowerState) { case MN_MSG_USIM_POWER_WAIT_EFSMSS: MN_NORM_LOG("MSG_GetEfCnfTimeout:WAIT EFSMSS"); /*获取EFSMSP文件的内容*/ if (TAF_SDC_SIM_TYPE_USIM == TAF_SDC_GetSimType()) { MN_MSG_GetUsimParmReq(USIMM_USIM_EFSMSP_ID); } else { MN_MSG_GetUsimParmReq(USIMM_TELE_EFSMSP_ID); } break; case MN_MSG_USIM_POWER_WAIT_EFSMSP: /* 上报EFSMSP文件读取完成 */ MN_MSG_SmspInitFinish(MN_CLIENT_ALL); MN_NORM_LOG("MSG_GetEfCnfTimeout:WAIT EFSMSP"); /*获取EFSMS文件的内容*/ if (TAF_SDC_SIM_TYPE_USIM == TAF_SDC_GetSimType()) { MN_MSG_GetUsimParmReq(USIMM_USIM_EFSMS_ID); } else { MN_MSG_GetUsimParmReq(USIMM_TELE_EFSMS_ID); } break; case MN_MSG_USIM_POWER_WAIT_EFSMSREC: MN_NORM_LOG("MSG_GetEfCnfTimeout:WAIT EFSMSREC"); /*获取EFSMSR文件的内容*/ if (TAF_SDC_SIM_TYPE_USIM == TAF_SDC_GetSimType()) { MN_MSG_GetUsimParmReq(USIMM_USIM_EFSMSR_ID); } else { MN_MSG_GetUsimParmReq(USIMM_TELE_EFSMSR_ID); } break; case MN_MSG_USIM_POWER_WAIT_EFSMS: MN_NORM_LOG("MSG_GetEfCnfTimeout:WAIT EFSMS"); MSG_GetEfSmsTimerout(); break; case MN_MSG_USIM_POWER_WAIT_EFSMSR: MN_NORM_LOG("MSG_GetEfCnfTimeout:WAIT EFSMSR"); /*上报初始化完成*/ MN_MSG_GetUsimParmReq(USIMM_DEF_FILEID_BUTT); break; default: MN_WARN_LOG("MSG_GetEfCnfTimeout:Invalid enPowerState"); break; } }