MTK短信开发详解(三)
<p><font face="Verdana">MTK短信开发详解(三)<br/>2.3.6、短信发送请求<br/> void mmi_frm_sms_send_sms_req(void) <br/> { <br/> [...] <br/> <br/> /* check SC: get SC address, inMsg keeps the flag */ <br/> if ((sendSMS->sendcheck & MMI_FRM_SMS_SC) != MMI_FRM_SMS_SC) <br/> { <br/> [... 首次进入 ...] <br/> return; <br/> } <br/> <br/> /* check DA: show input screen, inMsg keeps the number */ <br/> if ((sendSMS->sendcheck & MMI_FRM_SMS_DA) != MMI_FRM_SMS_DA) <br/> { <br/> [...二次进入, 弹出号码输入框...] <br/> else if ((strlen((S8*) sendSMS->number) == 0) && ((sendSMS->sendrequire & MMI_FRM_SMS_REPLY) == 0))<br/> { <br/> if (GetCurrScrnId() != SCR_ID_MSG_NUMBER) <br/> { <br/> mmi_frm_sms_entry_number(); <br/> } <br/> return; <br/> } <br/> sendSMS->sendcheck = MMI_FRM_SMS_DA; <br/> } <br/> <br/> /* check validity of DA */ <br/> [...] <br/> <br/> /* check FDL: when FDN on */ <br/> { <br/> [...号码输入完毕, 按[确认]到此...] <br/> <br/> [...短信内容编码...] <br/> result = mmi_frm_sms_pack_sms(); <br/> <br/> [...绘制发送短信发送界面...] <br/> mmi_frm_sms_entry_send(); <br/> <br/> [...设置短信发送回调...] <br/> SetProtocolEventHandler(mmi_frm_sms_send_sms_rsp, PRT_MSG_ID_MMI_SMS_SEND_MSG_RSP);<br/> SetProtocolEventHandler(mmi_frm_sms_abort_sms_ind, PRT_MSG_ID_MMI_SMS_SEND_ABORT_START_IND);<br/> <br/> [...(如果是长短信,循环)发送...] <br/> for (i = 0; i < j; i++) <br/> { <br/> mmi_frm_sms_send_sms_seg(); <br/> } <br/> [...] <br/> } <br/> } </font></p><font face="Verdana"><p><br/> void mmi_frm_sms_send_sms_seg(void) <br/> { <br/> MMI_FRM_SMS_SEND_MSG_REQ_STRUCT *sendSms; <br/> [...] <br/> mmi_frm_sms_send_message(MOD_MMI, MOD_L4C, 0, PRT_MSG_ID_MMI_SMS_SEND_MSG_REQ, (oslParaType*) sendSms, NULL);<br/> [...] <br/> } </p>
<p><br/>2.3.7、短信发送回调<br/>无论发送是否成功(或者[取消]), 最后返回并高亮[写短信]菜单项:HighlightWMessageHandler()。<br/> <br/> void mmi_frm_sms_send_sms_rsp(void *inMsg) <br/> { <br/> [...] <br/> mmi_frm_sms_callback_action((void*)number, sendResult); <br/> [...] <br/> }</p>
<p><br/> <br/> void mmi_msg_send_msg_rsp(void *number, module_type mod, U16 result) <br/> { <br/> switch (result) <br/> { <br/> case MMI_FRM_SMS_OK: <br/> <br/> [... 设置跳转节点 ...] <br/> else if (IsScreenPresent(SCR_ID_MSG_WRITE)) <br/> { <br/> SetMessagesScrnIdToDelHistoryNodes(SCR_ID_MSG_WRITE); <br/> } <br/> <br/> [... 删除历史屏幕, 返回[写短信]...] <br/> if (g_msg_cntx.msg_send_info.CurrSendSmsNumbers == g_msg_cntx.msg_send_info.TotalSendSmsNumbers)<br/> { <br/> DeleteMessagesHistoryNodes(); <br/> mmi_frm_sms_delete_screen_history(); <br/> } <br/> [...] <br/> } <br/> } </p>
<p>完整版本请见 http://www.51qianru.cn/bbs/<br/> 曙海教育</p>
<p> 曙海嵌入式学院3G通信培训中心</p>
<p> (MTK培训,Android培训,iPhone培训)</p>
<p> 电话:021-51875830</p>
<p> 网址:http://www.51qianru.cn</p>
<p> 讲师:李现路</p>
<p> 版权所有-曙海教育 转发请注明出处</p>
<p></font> </p>
页:
[1]