如何取消USSD需要回复

时间:2012-03-23 19:29:41

标签: c# nokia at-command

我将诺基亚设备连接到PC

这是我用来发送USSD命令的代码:

Port.Write("AT+CUSD=0,\"*147*1*#\",15\r\n");

工作正常, 但它显示选择服务的选项。我想要的是停止它或从该消息退出(退出)。我可以通过手机按取消选项,但我怎么能用C#?

2 个答案:

答案 0 :(得分:1)

我发布这个是因为这是使用AT命令终止USSD会话的最佳结果之一,也因为答案含糊不清。 这是我最后使用的c#代码(我将命令发送到gsm调制解调器)。希望它可以帮助别人

    SerialPort SendingPort=null;

    public string TerminateUssdSession()
    {
            InitializePort();

            //// generate terminate command for modem
            string cmd = "";
            cmd = "AT+CUSD=2\r";

            // send cmd to modem
            OpenPort();

            SendingPort.Write(cmd);

            Thread.Sleep(500);

            string response = SendingPort.ReadExisting();

            return response;

    }

    private void InitializePort()
    {
        if (SendingPort == null)
        {
            SendingPort = new SerialPort();
            SendingPort.PortName = PortName;//put port name e.g COM5
            SendingPort.BaudRate = 112500;
            SendingPort.Parity = Parity.None;
            SendingPort.DataBits = 8;
            SendingPort.StopBits = StopBits.One;
            SendingPort.Handshake = Handshake.None;
            SendingPort.ReadTimeout = 500;
        }
    }

    private void OpenPort()
    {
        if (!SendingPort.IsOpen)
        {
            SendingPort.Open();
        }
    }

答案 1 :(得分:0)

我相信AT + CUSD = 2可用于取消会话。或者只是等待USSD会话在服务器端超时(通常超时不会太长)