MTK623508B收短信流程

1.       收到新短信

   L4层收到短信,向MMI_Task递交消息

l4c_sms_new_msg_text_lind()

      ilm_ptr->msg_id = (kal_uint16) MSG_ID_MMI_SMS_DELIVER_MSG_IND;

注册到 mmi_frm_sms_new_sms_ind

CHISTIncRecvdSMS();                                           //更新短信计数器   

mmi_frm_sms_convert_new_sms(msgInd, data)                      //转换短信数据convert L4 data to MMI data

mmi_frm_sms_add_new_sms(mmi_frm_sms_deliver_msg_struct *entry, U16 length, U8 *data)  //并压入未读短信队列

mmi_frm_sms_new_sms()

2.       短信分类

新的短信信箱的类型为MMI_FRM_SMS_AWAITS

消息类型是:mmi_frm_sms_deliver_msg_struct

Mmi_frm_sms_msgbox_struct 保存到msgbox并设置信箱类型为MMI_FRM_SMS_UNREAD 并添加其索引到inbox

 mmi_frm_sms_new_sms()

  --à mmi_frm_sms_indicate_sms(index);

    -à mmi_frm_sms_convert_mt_to_entry()

           type = MMI_FRM_SMS_UNREAD;

       -àmsgbox_index = mmi_frm_sms_add_sms_to_msgbox(entry, data->index, segment);

              à entryindex = mmi_frm_sms_add_sms_entry(entry, index, thisseg);

              à mmi_frm_sms_add_sms_to_list(entry, entryindex);

       -à mmi_frm_sms_new_msg_ind(msgbox_index);

              àmmi_frm_sms_interrupt_callback(MOD_MMI, PRT_MSG_ID_MMI_SMS_DELIVER_MSG_IND,(void*)data, MMI_FRM_SMS_OK);

                  à mmi_frm_sms_interrupt_handler[i].callback(inMsg, mod, result);

                      à 回调mmi_msg_handle_new_msg_ind(void *data, module_type mod, U16 result)

                          à mmi_msg_new_msg_ind(index);

3.       新短信提示

   mmi_msg_new_msg_ind(index);

       -à mmi_frm_sms_get_list_index(&type, &list_index, g_msg_cntx.msg_ind_index);

          à mmi_frm_sms_get_sms_list_index(type, index, msgbox_index);

       -àmmi_msg_entry_new_msg_ind(); //新短信查看入口

          à mmi_nmgr_notify(MMI_NMGR_APP_SMS, MMI_NMGR_OPTION_USE_DEFAULT);

              à mmi_nmgr_notify_common(type, flag, mmi_nmgr_entry_default);

                  à app->query_func() == mmi_msg_nmgr_query_sms_notify(void)

àinfo.left_softkey = STR_SCR6035_LSK;

àmmi_msg_check_new_msg_password_key_handler/

4.       读取短信

设置密码否

mmi_msg_check_new_msg_password_key_handler()

-àmmi_msg_check_new_msg_password();

   YES

      EntryNewScreen(SCR_ID_MSG_IND_CHECK, NULL, NULL, NULL);

      SetLeftSoftkeyFunction(NewMsgPasswordCheck,KEY_EVENT_UP);

   NO

       mmi_msg_get_msg_new();

          à mmi_msg_exit_inbox_list_dummy(); //设置【返回】跳转的位置

          àmmi_msg_get_msg_req(MMI_FRM_SMS_APP_NOBOX, g_msg_cntx.msg_ind_index);

              à mmi_frm_sms_read_sms(mmi_msg_get_msg_rsp, MOD_MMI, type, index, MMI_TRUE);

                   mmi_frm_sms_write_action(callback, mod_src, data, mmi_frm_sms_read_sms_req);

                       mmi_frm_sms_read_action();

                             (*currFuncPtr) (currFuncData); == mmi_frm_sms_read_sms_req(void *inMsg)

                              #ifndef __MMI_DUAL_SIM_MASTER__

                                  mmi_frm_sms_read_sms_seg();

#else

                                  MTPNP_PFAL_Read_SMS_Segment();

#endif

 

mmi_msg_get_msg_rsp

         mmi_msg_entry_inbox_msg

         mmi_msg_entry_outbox_msg()

         mmi_msg_entry_simbox_msg()

         mmi_msg_entry_default_msg()

 

5.       更新短信状态

mmi_frm_sms_read_sms()

  mmi_frm_sms_set_sms_status(type, index, MMI_FRM_SMS_INBOX);

  mmi_frm_sms_set_sms_status(U16 type, U16 index, U16 newtype)

            msgindex = index;

            mti = (mmi_frm_sms_msg_box[msgindex].msgtype & 0xf000);

            mmi_frm_sms_msg_box[msgindex].msgtype = mti | newtype;

            break;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值