短信中心号码获取

来源:互联网 发布:网络连接拓扑图怎么画 编辑:程序博客网 时间:2024/04/29 18:35

 在手机程序编写中,有时需要获取手机SIM卡的短信中心号码来判别SIM卡的所属地区

void mmi_get_sms_sc()
{
char temp;
S16 errorCode;
#if defined(__MMI_DUAL_SIM_MASTER__)                                                                          //判断是否双卡手机
E_MTPNP_AD_SIMCARD_STATUS sim1_status, sim2_status;
sim1_status = MTPNP_AD_Get_Card1Status();                                                         //获取卡1的工作状态
sim2_status = MTPNP_AD_Get_Card2Status();                                                        //获取卡2的工作状态
if ((g_simcard_status & MTPNP_AD_CARD1) && sim1_status == MTPNP_AD_SIMCARD_VALID)      //卡1处于工作状态
{
ReadValue(NVRAM_SMS_ACTIVE_PROFILE_INDEX, &temp, DS_BYTE, &errorCode);    //从NVRAM中读取卡1的                                                                                                                                                              //短信设置状态
mmi_CaivsGetSCReq(&temp);                                                                                           
}
else if ((g_simcard_status & MTPNP_AD_CARD2) && sim2_status == MTPNP_AD_SIMCARD_VALID)
{
ReadValue(NVRAM_SLAVE_ACTIVE_PROFILE_IDX, &temp, DS_BYTE, &errorCode);
mmi_CaivsGetSC2Req(&temp);
}
else
{
ReadValue(NVRAM_SMS_ACTIVE_PROFILE_INDEX, &temp, DS_BYTE, &errorCode);
mmi_CaivsGetSCReq(&temp);
}
#else
ReadValue(NVRAM_SMS_ACTIVE_PROFILE_INDEX, &temp , DS_BYTE, &errorCode);
mmi_CaivsGetSCReq(&temp);
#endif
}
void mmi_CaivsGetSCReq (void* inMsg)
{
MMI_FRM_SMS_GET_PROFILE_PARAMS_REQ_STRUCT* msgReq;
U8 index = *(U8*)inMsg;
        msgReq= (MMI_FRM_SMS_GET_PROFILE_PARAMS_REQ_STRUCT*)OslConstructDataPtr(sizeof (MMI_FRM_SMS_GET_PROFILE_PARAMS_REQ_STRUCT));                                //动态分配内存
msgReq->profile_no = index;
SetProtocolEventHandler(mmi_CaivsGetSCRsp, PRT_MSG_ID_MMI_SMS_GET_PROFILE_PARAMS_RSP); //注册回调函数
mmi_frm_sms_send_message(MOD_MMI, MOD_L4C, 0, PRT_MSG_ID_MMI_SMS_GET_PROFILE_PARAMS_REQ, (oslParaType *)msgReq, NULL);                       //成功就发出  PRT_MSG_ID_MMI_SMS_GET_PROFILE_PARAMS_RSP消息
}
void mmi_CaivsGetSCRsp (void* inMsg)
{
MMI_FRM_SMS_GET_PROFILE_PARAMS_RSP_STRUCT *msgRsp = (MMI_FRM_SMS_GET_PROFILE_PARAMS_RSP_STRUCT*)inMsg;                                    
ClearProtocolEventHandler(PRT_MSG_ID_MMI_SMS_GET_PROFILE_PARAMS_RSP);   //清除消息
memset(g_simcard_sc1, 0, sizeof(g_simcard_sc1));
strcpy((char *)g_simcard_sc1, (char *)msgRsp->sc_addr.number);                        //g_simcard_sc1就是短信中心号码
kal_prompt_trace(MOD_BT, "sim1 sms center is [%s]", g_simcard_sc1);
}
#if defined(__MMI_DUAL_SIM_MASTER__)
void mmi_CaivsGetSC2Rsp (void* inMsg)
{
MMI_FRM_SMS_GET_PROFILE_PARAMS_RSP_STRUCT *msgRsp = (MMI_FRM_SMS_GET_PROFILE_PARAMS_RSP_STRUCT*)inMsg;
//mmi_frm_clear_slave_protocol_event_handler(PRT_MSG_ID_MMI_SMS_GET_PROFILE_PARAMS_RSP);
mmi_frm_clear_slave_protocol_event_handler(PRT_MSG_ID_MMI_SMS_GET_PROFILE_PARAMS_RSP);
memset(g_simcard_sc2, 0, sizeof(g_simcard_sc2));
strcpy((char *)g_simcard_sc2, (char *)msgRsp->sc_addr.number);
kal_prompt_trace(MOD_BT, "sim2 sms center is [%s]", g_simcard_sc2);
}
void mmi_CaivsGetSC2Req (void* inMsg)
{
MMI_FRM_SMS_GET_PROFILE_PARAMS_REQ_STRUCT* msgReq;
U8 index = *(U8*)inMsg;
msgReq= (MMI_FRM_SMS_GET_PROFILE_PARAMS_REQ_STRUCT*)OslConstructDataPtr(sizeof(MMI_FRM_SMS_GET_PROFILE_PARAMS_REQ_STRUCT));                              
msgReq->profile_no = index;
mmi_frm_set_slave_protocol_event_handler(mmi_CaivsGetSC2Rsp, PRT_MSG_ID_MMI_SMS_GET_PROFILE_PARAMS_RSP);
mmi_frm_sms_send_message(MOD_MMI, MOD_L4C_2, 0, PRT_MSG_ID_MMI_SMS_GET_PROFILE_PARAMS_REQ, (oslParaType *)msgReq, NULL);
}
#endif

原创粉丝点击