我已经厌倦了搜索如何在Google上发送USSD命令.我想检查可能从运营商平衡.
我见过的所有示例都使用如下命令:
"AT+CUSD=1,\"*140*1#\"\r\n";
Run Code Online (Sandbox Code Playgroud)
这似乎是正确的.我正在使用我认为有用的东西.我有一个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#\""
Run Code Online (Sandbox Code Playgroud)
我认为阅读命令的结果可能有差异命令或我应该在我的调制解调器上设置一些配置.
对我来说非常有趣的是我的调制解调器不会向我返回错误并且总是返回OK.
在发送USSD命令之前,需要将消息格式设置为AT + CMGF = 0.这是PDU模式(http://www.smartposition.nl/resources/sms_pdu.html).在我决定尝试AT + CMGF = 0之前,我使用AT + CMGF = 1(文本模式)难倒.
像魔术一样工作.
所以:
我假设您已经知道如何形成您的AT命令并从端口读取响应.