有些客户在使用中间件或者二次开发包进行开发时,开始测试成功,1-2个月都没问题,但是后面就有时会出现软件提示不能正常发送短信的,基本都发送失败。客服让他把SIM卡放到手机上能发送,然后删除完SIM卡里的短信后又能正常发送了,过1-2个月又出现了。 对于这样的情况,是因为你的手机卡SIM卡里面堆满了短信,导致短信发送不出去的。你可以在超级终端里给短信收发设备设置一下储存和发送短信的指令“at+cnmi=2,2”,让猫接收到短信后都发送到串口上接收,不要通过SIM卡接口。 下面是指令cnmi的解析: AT+CNMI 新消息提示 命令格式: AT+CNMI= 0:结果代码缓冲区在TA如果TA 的缓冲区满则提示信息存储在其他地方或者删除最旧的提示信息以新的代替。 1:当TA-TE 链接保留时拒绝新消息结果码否则直接将其传送给TE。 2:当TA-TE 链接保留时结果代码缓存在TA预约后发送给TE否则直接将其传送给TE。 3:否则直接将结果码传送给TE当TA 处于在线数据模式时特殊波段内的TA-TE 链接用来嵌入结果码和数据 +CMT : [ +CMT : 0:不向TE 发送广播消息提示信息广播消息已存储缺省值。 1:广播消息已存储并以格式+CBMI:BMl, 2:新的广播消息采用2 种格式直接发送给TE 。 +CBM : +CBM : 3:对class 3 的广播消息采用 0:不发送SMS-STATUS-REPORT。 1:采用如下格式发送SMS-STATUS-REPORT +CDS : +CDS : 0:当 1:当 命 令: AT+CNMI=2,1,0,0,0 // 响 应: OK 响 应: +CMTI : "SM", 1 //收到新消息的提示 |