2013-07-30 52 views
3

我正在使用java與使用AT命令的GSM調制解調器(西門子)進行通信。
我將調制解調器的編碼設置爲「UCS2」。
時,只要我送的電話號碼我從設備得到錯誤發送消息:

AT + CSCS = UCS2
OK

AT + CSMP = 17,167,0,8
OK

AT + CMGF = 1


AT + CMGS = 「0919xxxxxxx」
ERROR

幫助我,PLEEEEEEASE! :(GSM調制解調器以UCS2格式發送消息錯誤

+0

什麼是AT + CSCS =?命令回覆?此外,電話號碼不應該帶有'+'符號的國家代碼? –

+0

+ CSCS:(「GSM」,「UCS2」) 我測試了兩種方式91風格(+ 9x​​xx ...)和92(09xx ...)。 –

+1

嘗試AT + CSCS =「UCS2」而不是AT + CSCS = UCS2。我認爲它接受命令,但不是沒有引號的有效值,所以當您嘗試使用CMGS發送時會出錯 –

回答

5

我認爲你是不正確編碼<da>地址參數AT+CMGS

你指91和92的風格,但你實際上指的是「81」 /「82」格式在Coding of Alpha fields in the SIM for UCS2博客中關於編碼的解釋爲3GPP TS 11.11

指定運行AT+CSCS="UCS2"後的每一個字符串必須編碼的方式,所以實例SWIT ch從UCS2到UTF-8將是AT+CSCS="005500540046002D0038"

使用80/81/82編碼的Alpha字段僅適用於某些情況,而不適用於一般的UCS2編碼字符串。特別要注意的是,在上面的AT+CSCS命令中對字符串「UTF-8」的編碼與此無關。這也適用於AT+CMGS<da>參數。

0

這是非常有可能是您的調制解調器不支持UCS2的CMGS。

相關問題