我的諾基亞設備連接到PC如何取消USSD需要響應
這是我用來發送USSD指令代碼:
Port.Write("AT+CUSD=0,\"*147*1*#\",15\r\n");
它工作正常, 但它顯示一個選項來選擇服務。我想要的是停止它或退出(退出)該消息。我可以按手機上的取消選項,但我如何使用C#做到這一點?
我的諾基亞設備連接到PC如何取消USSD需要響應
這是我用來發送USSD指令代碼:
Port.Write("AT+CUSD=0,\"*147*1*#\",15\r\n");
它工作正常, 但它顯示一個選項來選擇服務。我想要的是停止它或退出(退出)該消息。我可以按手機上的取消選項,但我如何使用C#做到這一點?
我相信AT + CUSD = 2可以用來取消會話。或者只是等待USSD會話在服務器端超時(通常超時不會太長)
我發佈這個,因爲這是關於使用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();
}
}