[Description]
通过AT命令查询SIM卡的ICCID,客制化方法可参考相关文档,这里介绍的是如何获取ICCID的值。
[Solution]
1、MP Branch After 11A1129MP,11B1129MP,可以用AT+ICCID来获取;
2、客制化方法获取ICCID: 在MMI层如需读取ICCID,可以通过发message: MSG_ID_MMI_SMU_READ_SIM_REQ,从SIM卡去读FILE_ICCID_IDX。消息中src_mod_id = MOD_MMI; dest_mod_id =MOD_L4C。 同时要注册MSG_ID_MMI_SMU_READ_SIM_RSP 的callback 函数。 注意如果您要获取卡2的ICCID,需发消息到MOD_L4C_2,并使用SetSlaveProtocolEventHandler()来设置响应消息的响应函数。 以下是参考代码: MMI_BOOL mmi_lmc_get_iccid_rsp((void *inMsg, int mod_dest, void *Message)) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ mmi_smu_read_sim_rsp_struct *iccid_data; kal_uint8 iccid[21]; U8 i; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ iccid_data = (mmi_smu_read_sim_rsp_struct*) inMsg; mmi_frm_clear_protocol_event_handler(MSG_ID_MMI_SMU_READ_SIM_RSP, mmi_lmc_get_iccid_rsp); if (iccid_data->result.flag == L4C_SUCCESS) { kal_prompt_trace(MOD_MMI, "Read iccid success!"); for (i = 0; i < iccid_data->length; i++) { iccid[i * 2] = 0x30 + (*(iccid_data->data + i) & 0x0F); iccid[i * 2 + 1] = 0x30 + ((*(iccid_data->data + i) & 0xF0) >> 4); } iccid[20] = 0; kal_prompt_trace(MOD_MMI, "ICCID:%s", iccid); } else { kal_prompt_trace(MOD_MMI, "read iccid fail!"); } return MMI_FALSE; } void mmi_lmc_get_iccid_req(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ MYQUEUE Message; mmi_smu_read_sim_req_struct *dataPtr; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ mmi_frm_set_protocol_event_handler(MSG_ID_MMI_SMU_READ_SIM_RSP, (PsIntFuncPtr)mmi_lmc_get_iccid_rsp, MMI_TRUE); Message.oslSrcId = MOD_MMI; Message.oslDestId = MOD_L4C; Message.oslMsgId = MSG_ID_MMI_SMU_READ_SIM_REQ; dataPtr = (mmi_smu_read_sim_req_struct*) OslConstructDataPtr(sizeof(mmi_smu_read_sim_req_struct)); dataPtr->file_idx = (U8) FILE_ICCID_IDX; dataPtr->para = 0; dataPtr->length = 0x0a; Message.oslDataPtr = (oslParaType*) dataPtr; Message.oslPeerBuffPtr = NULL; OslMsgSendExtQueue(&Message); } 本文转载自一牛网论坛—MTK硬件 原文地址:http://bbs./thread-453664-1-1.html
|