2012-03-23 17 views
5

Ho dispositivo Nokia collegato al PCCome annullare la risposta USSD necessità

Questo è il codice che uso per inviare il comando USSD:

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

Funziona bene, ma visualizza un'opzione per scegliere il servizio. Quello che voglio è fermarlo O Esci (esci) da quel messaggio. Posso premere Annulla l'opzione dal telefono, ma come posso farlo usando C#?

risposta

0

Credo che AT + CUSD = 2 possa essere utilizzato per annullare una sessione. In alternativa, è sufficiente attendere la sessione USSD per il timeout sul lato server (in genere i timeout non sono troppo lunghi)

1

Sto postando questo perché questo è uno dei migliori risultati per terminare le sessioni USSD usando i comandi AT e anche perché il le risposte sono vaghe. Questo è il codice C# che ho usato alla fine (stavo inviando i comandi a un modem gsm). Spero che aiuti qualcun altro

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