2012-03-23 125 views
5

我的諾基亞設備連接到PC如何取消USSD需要響應

這是我用來發送USSD指令代碼:

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

它工作正常, 但它顯示一個選項來選擇服務。我想要的是停止它或退出(退出)該消息。我可以按手機上的取消選項,但我如何使用C#做到這一點?

回答

0

我相信AT + CUSD = 2可以用來取消會話。或者只是等待USSD會話在服務器端超時(通常超時不會太長)

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(); 
     } 
    }