MTK 短消息编程参考资料_第1页
MTK 短消息编程参考资料_第2页
MTK 短消息编程参考资料_第3页
MTK 短消息编程参考资料_第4页
MTK 短消息编程参考资料_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MTK短消息编程分类:MTK学习资料2012-04-0216:1817人阅读评论(0)\o"收藏"收藏\o"举报"举报1.获取短消息,MTK没有专门用于获取短消息内容的函数,这给我们操作短消息带来了不便.比如有时我们需要分析短消息的内容,再比如有时要把短消息写入T卡了,再或者有时要把某条短消息显示到某些应用场合了,这时就需要获取短消息的内容.这里提供一个我经常使用的接口:#include"SMSApi.h"

#include"med_utility.h"

externunsignedshortmmi_frm_sms_show_list_index[];

S8g_sms_buffer[160]={0};

char*ConvertString(char*str)

{

chartemp;

inti;

intlen=wstrlen(str);

for(i=0;i<len;i+=2)

{

temp=str[i];

str[i]=str[i+1];

str[i+1]=temp;

}

returnstr;

}

intwstrlen(char*txt)

{

intlenth=0;

unsignedchar*ss=(unsignedchar*)txt;while(((*ss<<8)+*(ss+1))!=0)

{

lenth+=2;

ss+=2;

}

returnlenth;

}voidmy_msg_get_msg_rsp(void*data,module_typemod,U16result)

{

//U8type=*(U8*)data;

EMSData*pEms;

intlen=0;

GetEMSDataForView(&pEms,0);len=wstrlen((char*)(pEms->textBuffer))+2;//把获取的信息复制到g_sms_buffer以备使用

if(len<20)

{

memcpy(g_sms_buffer,pEms->textBuffer,len);

}

else

{

memcpy(g_sms_buffer,pEms->textBuffer,20);

}

}

//type:MMI_FRM_SMS_APP_INBOX,MMI_FRM_SMS_APP_OUTBOX,MMI_FRM_SMS_APP_DRAFTS

//index:0~0XFF

S32my_msg_get_msg_req(U8type,U16req_index,E_MTPNP_AD_FILTER_RULEcur_sim)

{

intcount=0;

U16index;

/*disallowre-enteringSMSapplicationwhenthereisapendingSMSjobrunninginthebackground*/

if(mmi_frm_sms_check_action_pending())

{

return1;

}

#ifdef__MMI_DUAL_SIM_MASTER__

if(cur_sim==MTPNP_AD_FILTER_MASTER)

{

MTPNP_AD_SMS_Set_Filter_Rule(MTPNP_AD_FILTER_MASTER);

count=MTPNP_PFAL_SMS_Get_SMS_List_Size(type);

}

else

{

MTPNP_AD_SMS_Set_Filter_Rule(MTPNP_AD_FILTER_SLAVE);

count=MTPNP_PFAL_SMS_Get_SMS_List_Size(type);

}

if((count<=0)||(req_index>=count))

{

return-1;

}

MTPNP_PFAL_SMS_Set_Current_Index(req_index);

index=mmi_frm_sms_show_list_index[req_index];

#else

index=req_index;

#endif

mmi_frm_sms_read_sms(my_msg_get_msg_rsp,MOD_MMI,type,index,MMI_TRUE);return0;

}2.发短信,有时我们需要向网络或者别的基站发送一条自填充内容的短信.比如订阅某种服务,或者查询话费,或者定时发送短信,或者拒接电话时给MT发一条提示短信等场合.函数有5个参数,mobileNo为手机号码,ASC类型字串,mobileNoLen号码长度,smsMsg短消息内容,应为UCS2编码,smsMsgLen长度,simid双卡情况下,0为主卡,1为副卡#include"SMSApi.h"

#include"ProtocolEvents.h"

#ifndef__MMI_DUAL_SIM_MASTER__

voidmy_send_sms(S8mobileNo[],U32mobileNoLen,U8smsMsg[],U32smsMsgLen)

#else

voidmy_send_sms(S8mobileNo[],U32mobileNoLen,U8smsMsg[],U32smsMsgLen,

U8simid)#endif

{

mmi_sms_send_msg_req_struct*sendSms;

sendSms=(mmi_sms_send_msg_req_struct*)OslConstructDataPtr(sizeof(*sendSms));

sendSms->dcs=SMSAL_UCS2_DCS;

sendSms->udhi=0;

sendSms->length=smsMsgLen;

memset(sendSms->msg,0,SMSAL_MAX_MSG_LEN);

memcpy(sendSms->msg,smsMsg,sendSms->length);

sendSms->profile=0;

sendSms->para=0;

sendSms->reply_index=MMI_FRM_SMS_INVALID_INDEX;

sendSms->dest.type=CSMCC_DEFAULT_ADDR_TYPE;

memset((S8*)sendSms->dest.number,0,MAX_CC_ADDR_LEN);

sendSms->dest.length=mobileNoLen;

memcpy(sendSms->dest.number,mobileNo,sendSms->dest.length);

sendSms->seq_num=0;

sendSms->mms_mode=0;//simsp_set_sms_ProtocolEventHandler();

#ifndef__MMI_DUAL_SIM_MASTER__

mmi_frm_sms_send_message(MOD_MMI,MOD_L4C,0,PRT_MSG_ID_MMI_SMS_SEND_MSG_REQ,(

oslParaType*)sendSms,NULL);#else//__MMI_DUAL_SIM_MASTER__

if(simid==0)

{

mmi_frm_sms_send_message(MOD_MMI,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论