MTK 解析短信的内容

本文介绍了一种通过解析手机接收到的短信内容,并根据内容决定是否将短信存储至手机收件箱的方法。通过特定函数实现短信内容的解析及黑名单号码的短信拦截。

因为一个项目要根据短信的内容来控制手机进行不同的工作,所以就要解析短信的内容,之后不把短信存到手机里面。

首先找到手机mmi收到短信的入口   

SetProtocolEventHandler(mmi_frm_sms_new_sms_ind, PRT_MSG_ID_MMI_SMS_DELIVER_MSG_IND);

在mmi_frm_sms_new_sms_ind 里面

只需要关注     mmi_frm_sms_new_sms();
之后是          mmi_frm_sms_indicate_sms(index);

在mmi_frm_sms_indicate_sms(index);里面的

    memset(content, 0x00, content_len);
    withobject = mmi_frm_sms_get_awaited_sms((U8) index, data, content);
    data->msg_data[0] = (U8) index;
下面加入下面的代码

#if 

    if(!mmi_msgfirewall_get_patternIn_status()) //号码在黑名单里面
     {
     strcpy((S8*)comparenum, (S8*)(data->addr_number.number));
     Get_Phone_Number(comparenum);
     wrong_code = Unpack_sms_data((S8*)content , (S8*)Phone_Number); // 这个就是解析函数

//content 里面就是短信息的内容 Phone_Number是Get_Phone_Number里面得到的发送方的电话号码
     }
#endif

在mmi_msg_new_msg_ind 里面

                if(1) //(mmi_msgfirewall_get_patternIn_status()) //不把短信发到收件箱,直接删除
                {
kal_prompt_trace(MOD_MMI, "###mmi_msg_new_msg_ind: delete sms");               
//michael
                    mmi_delete_sms_for_firewall(NULL, MOD_MMI, MMI_FRM_SMS_APP_INBOX, index);
//                        mmi_frm_sms_delete_sms(NULL, MOD_MMI, MMI_FRM_SMS_APP_INBOX, index);
                   
                    mmi_msgfirewall_set_patternIn_status(0);
                    return;
                }
这样就可以不把短信存到收件箱里面了。

 

对于收到就打开的短信

    mmi_frm_sms_reg_interrupt_check(MOD_MMI, PRT_MSG_ID_MMI_SMS_STATUS_REPORT_IND, mmi_msg_handle_deli

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值