android mtk 发送短信,MTK短信开发详解(九)

[\plutommi\mmi\messages\messagessrc\MessagesMiscell.c]

void mmi_msg_new_msg_ind(U16 index)

{

[…]

// 弹出新短信提示框

if (MMI_FRM_SMS_APP_BIZUNREAD == mmi_frm_sms_msg_box[index].msgtype)

{

mmi_msg_entry_new_msg_popup(MSG_NEW_MSG_BUSINESS);// 弹出新业务短信提示框

}

else

{

mmi_msg_entry_new_msg_popup(MSG_NEW_MSG_NORMAL);

}

[…]

mmi_msg_entry_new_msg_ind();

[…]

}

[\plutommi\mmi\Messages\MessagesSrc\MessagesMiscell.c]

void mmi_msg_entry_new_msg_ind(void)

{

[…]

if(MMI_FRM_SMS_APP_BIZUNREAD == mmi_frm_sms_msg_box[g_msg_cntx.msg_ind_index].msgtype)

{

titleID = STR_NEW_BUSINESS_MESSAGE_FROM;

}

else

{

titleID = STR_NEW_MESSAGE_FROM_ID;

}

[…]

// 在待机界面显示“新短信来自:”

ShowCategory154Screen(

0,

0,

STR_SCR6035_LSK,

IMG_SMS_COMMON_NOIMAGE,

STR_GLOBAL_BACK,

IMG_SMS_COMMON_NOIMAGE,

(PU8) GetString(titleID),

(PU8) mmi_msg_get_new_msg_ind_string(),

IMG_NEW_MESSAGE_NOTIFICATION_MSG_IN_IDLE,

NULL);

[…]

}

4.3、阅读新短信

4.3.1、响应【读取】键、发送“读取”请求

void mmi_msg_get_msg_new(void)

{

[...]

g_msg_cntx.msg_ind_in_idle = FALSE;

mmi_msg_get_msg_req(MMI_FRM_SMS_APP_NOBOX, g_msg_cntx.msg_ind_index);

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

[...]

if (!pending)

{

if (type == MMI_FRM_SMS_BIZUNREAD || type == MMI_FRM_SMS_BIZINBOX)

{

mmi_msg_exit_bizbox_list_dummy();

g_msg_cntx.toDisplayMessageList = TO_DISPLAY_MESSAGE_LIST_BIZBOX;

}

else

{

mmi_msg_exit_inbox_list_dummy();

g_msg_cntx.toDisplayMessageList = TO_DISPLAY_MESSAGE_LIST_INBOX;

}

}

[...]

}

4.3.2、设置【返回】键路径

[\plutommi\mmi\Messages\MessagesSrc\MessagesMiscell.c]

void mmi_msg_exit_bizbox_list_dummy(void)

{

history currHistory;

memset(&currHistory, 0, sizeof(currHistory));

currHistory.scrnID = SCR_ID_MSG_BIZBOX_LIST;

SetMessagesCurrScrnID(0);

g_msg_cntx.MessagesScrnIdToDelHistoryNodes = SCR_ID_MSG_BIZBOX_LIST;

g_msg_cntx.MessagesScrnIdDelUptoHistoryNodes = SCR_ID_MSG_BIZBOX_LIST;

currHistory.entryFuncPtr = mmi_msg_entry_bizbox_list;//详见3.4 查看业务信箱

memset((S8*) currHistory.inputBuffer, 0, ENCODING_LENGTH);

AddHistory(currHistory);

}

4.3.3、接收“读取”请求的回复

[\plutommi\mmi\miscframework\miscframeworksrc\SMSMsg.c]

void mmi_frm_sms_read_sms_rsp(void *inMsg)

{

[...]

case SMSAL_REC_READ: mmi_frm_sms_msg_box[g_msg_cntx.msg_ind_index].msgtype;

type = (msgRsp->mti << 12) | mmi_frm_sms_index_list[g_msg_cntx.msg_ind_index].prevtype;

[...]

mmi_frm_sms_callback_action(&type, result);

}

[\plutommi\mmi\messages\messagessrc\SmsPsHandler.c]

void mmi_msg_get_msg_rsp(void *data, module_type mod, U16 result)

{

[...]

case MMI_FRM_SMS_BIZBOX:

mmi_msg_entry_bizbox_msg();

[...]

}

4.3.4、显示短信内容

[\plutommi\mmi\messages\messagessrc\SmsMoMtGuiInterface.c]

void mmi_msg_entry_bizbox_msg(void)

{

U8 *guiBuffer = NULL;

U8 *pHeader;

EMSData *pEms;

U16 strtitle;

if (IsScreenPresent(SCR_ID_MSG_PROCESSING))

{

HistoryReplace(SCR_ID_MSG_PROCESSING, SCR_ID_MSG_BIZBOX_MSG, mmi_msg_entry_bizbox_msg);

return;

}

EntryNewScreen(SCR_ID_MSG_BIZBOX_MSG, mmi_msg_exit_generic, mmi_msg_entry_bizbox_msg, NULL);

PRINT_INFORMATION_2((MMI_TRACE_G6_SMS, "*[SmsMoMtGuiInterface.c] mmi_msg_entry_bizbox_msg *\n"));

#ifdef __UNIFIED_MESSAGE_LIST_OPTION_SUPPORT__

if (IsScreenPresent(SCR_ID_MSG_BIZBOX_LIST_OPTION))

{

SetMessagesScrnIdToDelHistoryNodes(SCR_ID_MSG_BIZBOX_LIST_OPTION);

}

else

#endif /* __UNIFIED_MESSAGE_LIST_OPTION_SUPPORT__ */

{

SetMessagesScrnIdToDelHistoryNodes(SCR_ID_MSG_BIZBOX_MSG);

}

SetMessagesCurrScrnID(SCR_ID_MSG_BIZBOX_MSG);

GetCurrEndKeyDownHandler();

guiBuffer = GetCurrGuiBuffer(SCR_ID_MSG_BIZBOX_MSG);

GetEMSDataForView(&pEms, 0);

pHeader = mmi_msg_get_bizbox_header();

g_msg_cntx.number_from_phb = 0;

#if defined(__MMI_MESSAGES_EMS__)

EnableDisableAudioPlayback();

#endif

#ifdef __MMI_MESSAGES_CHAT__

if (pEms->listHead == NULL)

{

if (gChatInvitation)

{

SetChatInboxIndex(PendingSaveSendData.msgboxindex);

strtitle = STR_CHAT_INVITATION;

}

else if (CheckForInvitationMsg(pEms->textBuffer, (S32) pEms->textLength, TRUE) == TRUE)

{

SetChatInboxIndex(PendingSaveSendData.msgboxindex);

strtitle = STR_CHAT_INVITATION;

if (guiBuffer == NULL)

{

RemoveInvitationChar();

}

}

else

{

strtitle = STR_SCR6024_CAPTION;

gChatInvitation = 0;

}

}

else

{

strtitle = STR_SCR6024_CAPTION;

gChatInvitation = 0;

}

#else /* __MMI_MESSAGES_CHAT__ */

strtitle = 0; //strtitle = STR_SCR6024_CAPTION;

#endif /* __MMI_MESSAGES_CHAT__ */

ShowCategory39Screen(

(U16) strtitle,

IMG_SMS_ENTRY_SCRN_CAPTION,

STR_GLOBAL_OPTIONS,

IMG_SMS_COMMON_NOIMAGE,

STR_GLOBAL_BACK,

IMG_SMS_COMMON_NOIMAGE,

pEms,

pHeader,

guiBuffer);

#ifdef __MMI_MESSAGES_CHAT__

if (strtitle == STR_CHAT_INVITATION)

{

SetLeftSoftkeyFunction(mmi_msg_entry_option_chat, KEY_EVENT_UP);

}

else

{

SetLeftSoftkeyFunction(mmi_msg_entry_option_bizbox, KEY_EVENT_UP);

}

#else /* __MMI_MESSAGES_CHAT__ */

SetLeftSoftkeyFunction(mmi_msg_entry_option_bizbox, KEY_EVENT_UP);//设置【选项】

#endif /* __MMI_MESSAGES_CHAT__ */

SetLeftSoftkeyFunction(mmi_msg_entry_option_bizbox, KEY_EVENT_UP);  // TODO: smsnote: overwrite LSK func?? (Tony said: old bug. keep it)

SetRightSoftkeyFunction(mmi_msg_go_back_from_bizbox_msg, KEY_EVENT_UP);

}

完整版本请见

曙海教育

曙海嵌入式学院3G通信培训中心

(MTK培训,Android培训,iPhone培训)

电话:021-51875830

网址:

讲师:李现路

版权所有-曙海教育 转发请注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值