我用短信机发送短信,如果在发给对方时遇到对方手机关机或者不在服务区,对方就无法实时收到我的短信,如何检测到这类情况? (我知道手机上发短信时就有这个功能)

解决方案 »

  1.   

    记得AT指令里有一项设置就是看对方能否收到....
    你把你短信模块对应的AT指令说明看看吧
      

  2.   

    AT指令中有一个回应的说明是否发送成功的,这个我知道.
    但是如果手机关机或不在服务区它也提示成功
    // 从串口读数据,追加到缓冲区尾部
    nLength = ReadComm(&pBuff->data[pBuff->len], 128);
    pBuff->len += nLength;
    if (strncmp(&pBuff->data[pBuff->len - 4], "OK\r\n", 4) == 0)  nState = GSM_OK;
      else if (strstr(pBuff->data, "+CMS ERROR") != NULL) nState = GSM_ERR;
      

  3.   

    ReadComm()是读取com口的信息,并把它保存在pBuff->data中
      

  4.   

    短信发送报告,是由短信网关返回的,印象中是得在发送方的手机上选择要求回送报告才会有,4年前我用Nokia 的一款手机(忘记型号了,是7110还是5110来着)就是这样设置的