在收到push,并且将通知UM(统一收件箱)新消息到来的indication处理函数如下:

void srv_wap_push_send_um_new_msg_ind (U32 msg_id, U32 timestamp, U16 sim_id)

 {

     /*----------------------------------------------------------------*/

     /* Local Variables                                                */

     /*----------------------------------------------------------------*/

     srv_um_new_msg_ind_struct *local_data;



     /*----------------------------------------------------------------*/

     /* Code Body                                                      */

     /*----------------------------------------------------------------*/

     local_data = (srv_um_new_msg_ind_struct*) OslConstructDataPtr(sizeof(srv_um_new_msg_ind_struct));



local_data->msg_type = SRV_UM_MSG_WAP_PUSH;

local_data->msg_id = msg_id;

local_data->timestamp = timestamp;

     local_data->msg_box_type = SRV_UM_MSG_BOX_INBOX;

     local_data->tone_id = 0;

 #if (MMI_MAX_SIM_NUM >= 2)

     local_data->sim_id = srv_wap_push_map_sim_id_to_um_sim_id(sim_id);

 #endif /* __MMI_WAP_DUAL_SIM__ */



     srv_wap_push_send_msg_to_mmi (MSG_ID_MMI_UM_NEW_MSG_IND, (void*)local_data);

 }


该函数中会对srv_um_new_msg_ind_struct结构体中的tone_id赋值,tone_id对应不同铃声,由于此处赋值没有区分SIM卡,所以响应铃声有时是SIM1有时SIM2。 
改法就是在此函数添加对SIM卡的判断,分别给tone_id赋值,