2012-03-23 4 views
5

У меня есть Nokia устройства, подключенного к ПККак отменить ответ USSD потребность

Это код, который я использую, чтобы отправить команду USSD:

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

Это прекрасно работает, но отображает возможность выбора сервиса. Я хочу остановить его ИЛИ выйти (выйти) из этого сообщения. Я могу нажать кнопку отмены с телефона, но как я могу это сделать с помощью C#?

ответ

0

Я считаю, что AT + CUSD = 2 может использоваться для отмены сеанса. В качестве альтернативы просто подождите, пока сессия USSD будет отключена на стороне сервера (обычно тайм-ауты не слишком длинны)

1

Я отправляю это, потому что это один из лучших результатов относительно завершения сеансов USSD с использованием команд AT, а также потому, что ответы туманны. Это код 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(); 
     } 
    } 
Смежные вопросы