2013-07-30 48 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。

相关问题