深入彩信格式解析

来源:互联网 发布:淘宝男装冬装西服 编辑:程序博客网 时间:2024/06/06 10:04

原来以为只有GSM模块硬件支持彩信才可以收发彩信,后来写完彩信软件后才发现只要是能上网的手机都可以支持彩信,彩信其实就是一条URL网址的短信,指向一个图片或声音等文件,例 如:

$application/vnd.wap.mms-message JNHLRazjiIdB http://211.136.221.115/JNHLRazjiIdB   TYPE=PLMN
打开此连接后,显示是彩信内容,即一张图片

 

 

部分代码如下:

 

//--------------------------------------------------------------------------------------------------------------------------------------
BOOL GSMLib::GetSMS(int index,SM_PARAM* pMsg)
{
 char* ptr;       // 内部用的数据指针
 char pBuff[MAX_SMS_COUNT*100];  //短消息数据
 char Cmd[256];

 char PDU[256];

 memset(pBuff,0,MAX_SMS_COUNT*100);
 memset((void*)pMsg,0,sizeof(SM_PARAM));
 memset(Cmd,0,256);
 memset(PDU,0,256);
 sprintf(Cmd,"AT+CMGR=%d/r",index);

 m_pSerial->SendStrAndWait(Cmd,0,pBuff,sizeof(pBuff),10000);

 ptr = pBuff;
 if((ptr = strstr(ptr, "+CMGR:")) != NULL)// 循环读取每一条短消息, 以"+CMGL:"开头
 {
  ptr += 6;  // 跳过"+CMGR:", 定位到序号
  ptr = strstr(ptr, "/r/n"); // 找下一行
  if (ptr != NULL)
  {
   ptr += 2;   // 跳过"/r/n", 定位到PDU
   gsmDecodePdu(ptr, pMsg); // PDU串解码
  }
 return TRUE;
 }
 return FALSE;
}

 

 

原创粉丝点击