1. 程式人生 > >簡訊貓、卡、軟體都都正常連線,但是軟體就是傳送失敗

簡訊貓、卡、軟體都都正常連線,但是軟體就是傳送失敗

在使用中介軟體或者二次開發包進行開發時,開始測試成功,1-2個月都沒問題,但是後面就有時會出現軟體提示不能正常傳送簡訊的,基本都發送失敗。客服讓他把SIM卡放到手機上能傳送,然後刪除完SIM卡里的簡訊後又能正常傳送了,過1-2個月又出現了。
       對於這樣的情況,是因為你的手機卡SIM卡里面堆滿了簡訊,導致簡訊傳送不出去的。你可以在超級終端裡給簡訊貓設定一下儲存和傳送簡訊的指令“at+cnmi=2,2”,讓貓接收到簡訊後都發送到串列埠上接收,不要通過SIM卡介面。

下面是指令cnmi的解析:
AT+CNMI 新訊息提示 
命令格式:
AT+CNMI=<mode>,<mt>,<bm>,<ds>,<bfr>

<mode> :控制主動提供結果碼的過程只支援<mode>=2, 對於值013只是接受並返回OK其執行的過程與值2 一樣。
0:結果程式碼緩衝區在TA如果TA 的緩衝區滿則提示資訊儲存在其他地方或者刪除最舊的提示資訊以新的代替。
1:當TA-TE 連結保留時拒絕新訊息結果碼否則直接將其傳送給TE。
2:當TA-TE 連結保留時結果程式碼快取在TA預約後傳送給TE否則直接將其傳送給TE。
3:否則直接將結果碼傳送給TE當TA 處於線上資料模式時特殊波段內的TA-TE 連結用來嵌入結果碼和資料
<mt> : 為SMS-DELIVERs 設定結果碼提示傳送路徑預設值為0 0SMS-DELIVER 提示不需要傳送路徑 1SMS-DELIVER 由+CMTI : SM,<index> 來提示傳送路徑 2SMS-DELIVER 除了class 2 訊息由2 種結果碼來發送

+CMT : [<alpha>,] <length> <pdu> (PDU 方式)
+CMT : <oa>,[<alpha>,] <scts> [,<tooa>, <fo>, <pid>, <dcs>, <sca>, <tosca>, <length>] <data> TEXT 方 式 3class 3 的SMS-DELIVER 訊息採用<mt>=2 中的結果碼來發送其他型別的訊息 用 <mt>=1的格式

<bm> : 設定儲存接收的廣播訊息的規則:
0:不向TE 傳送廣播訊息提示資訊廣播訊息已儲存預設值。
1:廣播訊息已儲存並以格式+CBMI:BMl, <index>向用戶顯示儲存位置。
2:新的廣播訊息採用2 種格式直接傳送給TE 。
+CBM : <length> <pdu> PDU 方式 。
+CBM :<sn>,<mid>, <dcs>,<page>,<pages> <data> Text 方式。
3:對class 3 的廣播訊息採用<bm>=2 的操作,其他型別的訊息採用<bm>=1 的操作
<ds> :用於SMS_STATUS_REPORT, 預設值為0。
0:不傳送SMS-STATUS-REPORT。
1:採用如下格式傳送SMS-STATUS-REPORT
+CDS : <length> <pdu> (PDU 方式)
+CDS : <fo>,<mr>, [<ra>] , [<tora>], <scts>,<dt>,<st> (Text 方式)
<bfr> :預設值為0
0:當<mode> 取值為1-3 時TA 緩衝區中的結果碼傳送給TE。
1:當<mode> 取值為1-3 時清除TA 緩衝區中的結果碼。
命 令:
AT+CNMI=2,1,0,0,0 //<mt>=1
響 應:
OK
響 應:
+CMTI : "SM", 1 //收到新訊息的提示