搜索

165

主题

244

帖子

2721

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2721
发表于 2020-8-4 20:19:34 2014 浏览 0 回复

在代码中读取短信内容


有些客户需要在代码里面读取新短信内容,以下代码可以读取。已在2503D,2503AVE上验证过
  1. CHAR pOutBuffer[2048];
  2. void mmi_read_sms(U16 msg_id,SrvSmsCallbackFunc callback_func)
  3. {
  4.         srv_sms_msg_data_struct * msg_data  = NULL;
  5.          EMSData* content_ems = NULL;
  6.       // 申请结构体空间
  7.         msg_data = (srv_sms_msg_data_struct*)OslMalloc(sizeof(srv_sms_msg_data_struct));
  8.        
  9.         /* If want to content as EMS format, we need to fill para_flag to SRV_SMS_PARA_CONTENT_EMS */
  10.         msg_data->para_flag = SRV_SMS_PARA_CONTENT_EMS;
  11.         /* For content, its buffer also provided by caller. */
  12.      //申请短信内容存放空间
  13.         msg_data->content_ems = (EMSData*)GetEMSDataForView((EMSData*)&content_ems, 1);
  14.         /* If want to get protocol identifier(PID), we need to fill para_flag to SRV_SMS_PARA_PID */
  15.         msg_data->para_flag |= SRV_SMS_PARA_PID;
  16.         msg_data->para_flag |= SRV_SMS_PARA_SCA;
  17.         msg_data->para_flag |= SRV_SMS_PARA_STATUS;
  18.         msg_data->para_flag |= SRV_SMS_PARA_NUM;
  19.         msg_data->para_flag |= SRV_SMS_PARA_CONTENT;
  20.         msg_data->content_buff = content_ems->textBuffer;
  21.         msg_data->content_buff_size = content_ems->textBufferSize + 2;
  22.      //读取短信内容 在回调函数显示
  23.         srv_sms_read_msg(
  24.         msg_id,
  25.         MMI_FALSE,
  26.         msg_data,
  27.         callback_func,
  28.         NULL);
  29. }

  30. void mmi_sample_read_func(srv_sms_callback_struct* callback_data)
  31. {
  32.         srv_sms_read_msg_cb_struct *read_msg_cb_data;
  33.         srv_sms_msg_data_struct *msg_data;
  34.      //得到短信信息结构体
  35.         read_msg_cb_data =(srv_sms_read_msg_cb_struct*)callback_data->action_data;
  36.         msg_data = read_msg_cb_data->msg_data;
  37.         if (callback_data->result == MMI_TRUE)  //读取成功
  38.         {
  39.                 newmobi_trace("SMS"," read sms succeed !!!");
  40.           //短信号码
  41.                 mmi_chset_ucs2_to_text_str(pOutBuffer,mmi_ucs2strlen(msg_data->number) * 2,msg_data->number,GB2312_ENCODING_TYPE);
  42.                 newmobi_trace("pOutBuffer                "," == %s",pOutBuffer);
  43.           //短信内容
  44.                 mmi_chset_ucs2_to_text_str(pOutBuffer,mmi_ucs2strlen(msg_data->content_buff) * 2,msg_data->content_buff,GB2312_ENCODING_TYPE);
  45.                 newmobi_trace("pOutBuffer                "," == %s",pOutBuffer);
  46.         }
  47.         else
  48.         {
  49.                 newmobi_trace("SMS"," read sms fail !!!");
  50.         }
  51. }
复制代码
使用方法:
在需要读取短信地方调用下面函数,第1个传参是短信索引,收件箱第一条短信就是索引0,第2个传参是一个函数指针,读取结果将会在mmi_sample_read_func函数中得到
  1. mmi_read_sms(0,mmi_sample_read_func)
复制代码





回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表