簡體   English   中英

GSM調制解調器無法接收短信

[英]GSM Modem not able to receive SMS

我做了一個簡單的應用程序,能夠與GSM調制解調器集成以發送和接收SMS。 我已經完成了發送SMS的部分,但是我無法接收SMS。 我收到錯誤消息,表示嘗試將其他移動設備的SMS發送到GSM調制解調器中的SIM卡時,我的SIM卡內存已滿。 我試圖使用AT命令“ AT + CMGL”刪除所有消息,但仍然相同。 我可以知道有什么方法可以將消息存儲在計算機內存中,以便能夠通過GSM調制解調器接收短信。 我從這里使用示例代碼http://www.codeproject.com/Articles/38705/Send-and-Read-SMS-through-a-GSM-Modem-using-AT-Com

AT+CMGL命令用於列出消息,而不是刪除消息。 刪除消息是使用AT+CMGD命令完成的。 幫個忙,下載3GPP 27.005標准的副本,它定義了所有標准的sms AT命令(大多數其他移動電話AT命令在27.007中定義),並且一定獲得了ITU標准V.250的副本。定義了AT命令的基本命令語法,結構和行為-發出AT命令的任何人都必須閱讀絕對命令(至少閱讀第5章的所有內容)。 這些文檔比任何隨機Internet網站(包括stackoverflow)都更有價值。

說到隨機網站,作為源鏈接的網頁似乎具有可疑的價值。 它給出了一個示例函數DeleteMsg ,該函數發出AT+CMGF=1但是此命令絕不會刪除任何內容,它為各種與sms相關的命令選擇文本或PDU模式。

它的響應處理確實比可怕的發送-讀取-讀取錯誤要好,不幸的是,該錯誤並沒有像應該的那樣普遍,但是它只有一半是體面的,而且根本沒有魯棒性。 向調制解調器發送AT命令后,您應該不斷地讀取和解析來自調制解調器的響應行(一遍又一遍),直到您收到最終的結果代碼(而不僅僅是一次)。 有關詳細信息,請參見此答案


所有消息命令都在AT+CPMS設置的存儲位置上操作。 並且請注意,您應始終同時設置<mem1><mem2> ,例如

AT+CPMS="SM","SM"

僅更改mem1 / mem2中的一個幾乎沒有意義,並且某些電話不喜歡僅設置其中之一的嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM