概述:在jb00+bt專案的sms demo中使用了藍芽的dun服務來對手機傳送at命令,主要用at命令實現2個方面的功能:傳送簡訊、查詢手機**本。dun連線成功後,就可以直接對手機傳送at命令了。使用at命令之前,一般通過傳送"at"進行at命令初始化,如果成功返回ok,即說明手機已可正常響應at命令。
除錯at命令有乙個比較簡便的方法就是使用pc的超級終端進行除錯:如果手機有串列埠介面,直接連線到pc的串列埠;如果手機無串列埠介面,可以使用usb藍芽介面卡和手機進行藍芽配對,然後通過在超級終端使用dun服務的藍芽虛擬串列埠傳送at命令控制手機。
一、什麼是at 命令
at 即attention,at指令集是從終端裝置(terminal equipment,te)或資料終端裝置(data terminal equipment,dte)向終端介面卡(terminal adapter, ta)或資料電路終端裝置(data circuit terminal equipment,dce)傳送的。通過ta,te傳送at指令來控制移動臺(mobile station,ms)的功能,與gsm 網路業務進行互動。使用者可以通過at指令進行呼叫、簡訊、**本、資料業務、傳真等方面的控制。
90年代初,at指令僅被用於modem操作。沒有控制移動**文字訊息的先例,只開發了一種叫sms blockmode的協議,通過終端裝置(te)或電腦來完全控制sms。幾年後,主要的移動**生產廠商諾基亞、愛立信、摩托羅拉和hp共同為gsm 研製了一整套at指令,其中就包括對sms的控制。at指令在此基礎上演化並被加入gsm 07.05標準以及現在的gsm07.07標準,完全標準化和比較健全的標準。如:對sms的控制共有3種實現途徑:最初的block mode;基於at指令的text mode;基於at指令的pdu mode。到現在pdu mode已經取代blockmode,後者逐漸淡出。gsm 模組與計算機之間的通訊協議是一些at指令集,at指令是以at作首,字元結束的字串,at指令的響應資料報在中。每個指令執行成功與否都有相應的返回。其他的一些非預期的資訊(如有人撥號進來、線路無訊號等),模組將有對應的一些資訊提示,接收端可做相應的處理。
示例:cdma modem dte
at< cr>
< lf> ok < lf>
attest< cr>
< cr> error < lf>
如果at指令執行成功,"ok"字串返回;
如果at 指令語法錯誤或at 指令執行失敗,
"error"字串返回。
二、如何使用at命令發簡訊、查詢**本(紅色部分改為實際內容)
1、傳送簡訊步驟:
如果返回"ok"表明手機支援簡訊收發的at命令,否則返回"error"。
step2、選擇簡訊模式為文字模式:at+cmgf=1
如果返回"ok",設定成功。
除了文字模式,還可以設定為pdu編碼模式,其指令為:at+cmgf=0
step3、傳送簡訊目標號碼:at+cmgs=phone number
如果返回"> ",號碼傳送成功,繼續傳送簡訊文字內容。
step4、直接將簡訊文字內容傳送到手機,並以ctrl+z或者對應的ascii碼0x1a作為結束符。
step5、如果短訊息傳送成功,則返回"ok",並顯示資訊號:+cmgs: [,]
如果短訊息傳送失敗,則返回"+cms error: "。
2、查詢**本步驟:
如果返回"ok"表明手機支援**本查詢相關的at命令,否則返回"error"。
step2、選擇查詢**本,設定為手機儲存體:at+cpbs="me"
如果返回"ok",設定成功。
step3、根據聯絡人姓名查詢**號碼:at+cpbf=name
如果查詢成功,則返回相應的描述字段"+cpbf:......."。
這裡也可以根據聯絡人id進行查詢:at+cpbr=id
如果查詢成功,則返回"+cpbr:......."。
三、常用的簡訊、**本命令
1、短訊息命令
at+csms
選擇訊息服務。支援的服務有gsm-mo、sms-mt、sms-cb。
at+cnma
新資訊確認應答。
at+cpms
優先資訊儲存。這個命令定義用來讀寫資訊的儲存區域。
at+cmgf
優先資訊格式。執行格式有text方式和pdu方式。
at+csas
儲存設定。儲存+csas和+csmp的引數。
at+cres
恢復設定。
at+csdh
顯示文字方式的引數。
at+cnmi
新資訊指示。這個命令選擇如何從網路上接收簡訊息。
at+cmgr
讀簡訊。資訊從+cpms命令設定的儲存器讀取。
at+cmgl
列出儲存的資訊。
at+cmgs
傳送資訊。
at+cmgw
寫簡訊息並儲存。
at+cmss
從儲存器中傳送資訊。
at+csmp
設定文字模式的引數。
at+cmgd
刪除簡訊息。刪除乙個或多個簡訊息。
at+csca
簡訊服務中心位址。
at+cscb
選擇單元廣播資訊型別。
at+wcbm
單元廣播資訊標識。
at+wmsc
資訊狀態(是否讀過、是否傳送等等)修正。
at+wmgo
資訊覆蓋寫入。
at+wuss
不改變sms狀態。在執行+cmgr或+cmgl後仍保持unread。
2、**本命令
at+cpbs
選擇**簿記憶儲存。
at+cpbr
讀取**簿表目。
at+cpbf
查詢**簿表目。
at+cpbw
寫**簿表目。
at+cpbp
**簿**查詢。
at+cpbn
**簿移動動作。這個特殊命令使**簿中的條目前移或後移(按字母順序)
at+cnum
簽署者號碼。
at+waip
防止在下一次重起時初始化所有的**簿。
at+wdcp
刪除呼叫**號碼。
at+csvm
設定語音郵件號碼。
電話本 新增錯誤命令處理
如果輸入錯誤命令,返回提示資訊 2.18.cpp 定義控制台應用程式的入口點。include stdafx.h include include const unsigned int max length of cmd 300 const unsigned int max length of cmd ...
電話本 改進值分離命令和引數
通過cmd 3 0 strcpy file,cmd 4 實現命令的解析,比較詭異。必須要知道命令頭只有三個位元組的秘密 若將來命令格式發生變化,麻煩大了 只有在while迴圈中改動,除了要理解命令解析外,還要理解其他很多語義 另外,其他命令解析,也需要進行strcpy,重複就是罪惡!需要把命令解析的...
android講義9之向電話本進行批處理的插入
contentvalues values new contentvalues 首先向rawcontacts.content uri執行乙個空值插入,目的是獲取系統返回的rawcontactid uri rawcontacturi context.getcontentresolver insert r...