我已经厌倦了搜索如何在Google上发送USSD命令。 我想检查可能从运营商平衡。
我见过的所有样本都使用这样的命令:
"AT+CUSD=1,\"*140*1#\"\r\n";
这似乎是正确的。我正在使用我认为有用的东西。我有一个D-Link GSM调制解调器,当我使用它发送此命令时,它会在我的扬声器上发出一些噪音,我相信这会让我发生一些事情。
当我通过我自己的应用程序断开调制解调器时,我的调制解调器有自己的Windows应用程序,我通过调制解调器的应用程序检查它,在USSD选项卡中,我可以找到我自己发送的命令的结果。然后该命令工作正常,但我很困惑当我发送命令时它发生了什么让它返回“OK”并且不返回操作员的答案以及我的调制解调器的应用程序如何读取该答案????????
我测试这些命令但无法获得结果,我的调制解调器只返回这样的事情: “AT + CUSD = 1,\”* 140 * 1#\“\ r \ n \ OK \ r \ n”仅限。
1) "AT+CUSD=1,\"*140*1#\",15\r\n"
2) "AT+CUSD=1,\"*140*1#\",1\r\n"
3) "AT+CUSD=1,\"*140*1#\",15\r"
4) "AT+CUSD=1,\"*140*1#\",1\r"
5) "AT+CUSD=1,\"*140*1#\""
我认为阅读命令的结果可能有差异命令,或者我应该在我的调制解调器上设置一些配置。
对我来说非常有趣的是我的调制解调器不会向我返回错误并且总是返回OK。
答案 0 :(得分:6)
在发送USSD命令之前,需要将消息格式设置为AT + CMGF = 0。这是PDU模式(http://www.smartposition.nl/resources/sms_pdu.html)。在我决定尝试AT + CMGF = 0之前,我使用AT + CMGF = 1(文本模式)难倒。
像魔术一样工作。
所以:
我假设你已经知道如何形成你的AT命令并从端口读取响应。
答案 1 :(得分:0)
我只是在我的国家使用这个“AT + CUSD = 1,'* 120#',15”USSD代码是* 120#但是请记住,如果你使用它代码,你必须添加crlf字符到最后希望这个帮助
答案 2 :(得分:0)
尝试使用 Hyperterm 串行监视器应用程序(https://www.hilgraeve.com/hyperterminal-trial/)
首先将调制解调器转换为PDU模式:
AT+CMGF=0
第二个USSD代码发送:
AT+CUSD=1,"#132#",15
(使用您的国家/地区运营商代码)
最终从终端读取输出:)