MTK短信开发详解(十一)
4.5、查看业务短信内容
1. 从mmi_frm_sms_bizbox_list[]读取短信的L4index:
[\plutommi\mmi\Messages\MessagesSrc\SmsPsHandler.c]
void mmi_msg_get_msg_bizbox(void)
mmi_msg_get_msg_req(MMI_FRM_SMS_BIZBOX, (U16) g_msg_cntx.currBoxIndex);
[\plutommi\mmi\Messages\MessagesSrc\SmsPsHandler.c]
void mmi_msg_get_msg_req(U16 type, U16 index)// 提交读取短信请求
mmi_frm_sms_read_sms(mmi_msg_get_msg_rsp, MOD_MMI, type, index, MMI_TRUE);
[\plutommi\mmi\MiscFramework\MiscFrameworkSrc\SMSCore.c]
void mmi_frm_sms_read_sms(PsFuncPtrU16 callback, module_type mod_src, U16 type, U16 index,
MMI_BOOL change_status)
mmi_frm_sms_get_sms_index((mmi_frm_sms_msgbox_enum) type, index, data);
[\plutommi\mmi\miscframework\miscframeworksrc\SMSUtil.c]
void mmi_frm_sms_get_sms_index(mmi_frm_sms_msgbox_enum type, U16 index, U16 *l4_index)
case MMI_FRM_SMS_BIZBOX:
L4index = mmi_frm_sms_msg_box[mmi_frm_sms_bizbox_list[index]].startindex;
2. 发送读短信请求注册回调:
[\plutommi\mmi\MiscFramework\MiscFrameworkSrc\SMSCore.c]
void mmi_frm_sms_read_sms(PsFuncPtrU16 callback, module_type mod_src, U16 type, U16 index,
MMI_BOOL change_status)
mmi_frm_sms_write_action(callback, mod_src, data, mmi_frm_sms_read_sms_req);
// callback => mmi_msg_get_msg_rsp
3. 在应答回调中显示短信内容:
[\plutommi\mmi\MiscFramework\MiscFrameworkSrc\SMSMsg.c]
void mmi_frm_sms_read_sms_rsp(void *inMsg) // 短信请求应答
[\plutommi\mmi\messages\messagessrc\SmsMoMtGuiInterface.c]
void mmi_msg_entry_bizbox_msg(void) // 显示短信内容
4.6、开机加载短信
[\plutommi\mmi\miscframework\miscframeworksrc\SMSMsg.c]
void mmi_frm_sms_startup_read_ind(void *inMsg)
{
[...]
mmi_frm_sms_convert_startup_read_to_entry((MMI_FRM_SMS_STARTUP_READ_MSG_IND_STRUCT*)
msgInd, entry);// 1. 短信数据类型转换
mmi_frm_sms_add_sms_to_msgbox(entry, msgInd->index, thisseg);// 2. 添加到短信箱和索引表
[...]
}
[\plutommi\mmi\miscframework\miscframeworksrc\SMSUtil.c]
void mmi_frm_sms_convert_startup_read_to_entry(
MMI_FRM_SMS_STARTUP_READ_MSG_IND_STRUCT *data,
mmi_frm_sms_msgbox_struct *entry)
{
[...]
switch (data->status)
{
case SMSAL_REC_UNREAD:
[...]
type = MMI_FRM_SMS_BIZINBOX;// 如果是业务短信
[...]
type = MMI_FRM_SMS_INBOX;// 如果是普通短信
case SMSAL_REC_READ:
[...]// 处理过程与SMSAL_REC_UNREAD 相同
[...]
}
[\plutommi\mmi\miscframework\miscframeworksrc\SMSUtil.c]
U16 mmi_frm_sms_add_sms_to_msgbox(mmi_frm_sms_msgbox_struct *entry, U16 index, U8 thisseg)
{
[..]
/* add to msg entry */
entryindex = mmi_frm_sms_add_sms_entry(entry, index, thisseg);// 添加到短信箱
/* update msg list */
if (mmi_frm_sms_list_done)
{
mmi_frm_sms_add_sms_to_list(entry, entryindex);// 添加到索引表
}
return entryindex;
}
完整版本请见 http://www.51qianru.cn/bbs/
曙海教育
曙海嵌入式学院3G通信培训中心
(MTK培训,Android培训,iPhone培训)
电话:021-51875830
网址:http://www.51qianru.cn
讲师:李现路
版权所有-曙海教育 转发请注明出处 |