接收短信緩存
接收剛收到的短信有兩種方法:輪詢終端;使用事件spa
輪詢終端能夠按期的使用AT+CMGL=0指令讀取未讀取得指令。方法簡單,但許多時候都在作無用功,效率低下,通常不建議採用。下面主要講解事件法:事件
指令:效率
AT+CNMI=<mode>,<mt>,<bm>,<ds>,<brf>終端
參數:程序
mode:方法
0——緩存在終端參數
1——直接發送到TEindex
mt:
0——接收到新的SMS不返回事件
1——若是接收到的SMS存儲在ME,則返回
+CMTI:<mem>,<index>
2——除了Class2 SMS,新的SMS直接發送到終端,返回:
+CMT:<length><CR><LF><PDU>
3——Class3 SMS使用mt=2的方法返回,其餘類型的使用mt=1的方法返回。
bm:
0——小區廣播不通知
2——新的小區廣播通知,返回
+CBM:<length><CR><LF><pdu>
3——Class3格式的小區廣播通知,使用bm=2格式
ds:
0——狀態報告不通知
1——新的狀態報告通知,返回:
+CDS:<length><CR><LF><pdu>
2——若是新的狀態報告存儲到ME,則返回:
+CDSI:<mem>,<index>
brf:
1——始終爲1
例:
通常咱們使用AT+CNMI=1,1,0,2,1
當收到新的短信時終端返回:
+CMTI:ME,5
新的狀態報告:
+CDSI:ME,6
程序能夠經過判斷返回值並使用AT+CMGR指令返回新到短信。
轉自bbs.sendsms.cn