C# 在C中通过GSM调制解调器接收SMS#

C# 在C中通过GSM调制解调器接收SMS#,c#,serial-port,sms,at-command,sms-gateway,C#,Serial Port,Sms,At Command,Sms Gateway,我正在从事一个项目,在这个项目中,我必须使用AT命令通过C#中的GSM调制解调器发送和接收短信。我已完成发送部分,但无法从sim卡读取短信。 我尝试了以下代码并得到以下响应: 好的 好啊 错误。 阅读短信的代码是:-` public bool ReadSms() { //string buffer = string.Empty; if (this.serialPort.IsOpen == true) {

我正在从事一个项目,在这个项目中,我必须使用AT命令通过C#中的GSM调制解调器发送和接收短信。我已完成发送部分,但无法从sim卡读取短信。 我尝试了以下代码并得到以下响应: 好的 好啊 错误。 阅读短信的代码是:-`

    public bool ReadSms()
    {



        //string buffer = string.Empty;
        if (this.serialPort.IsOpen == true)
        {
            try
            {
                this.serialPort.WriteLine("AT");
                 Thread.Sleep(2000);
                 this.serialPort.WriteLine("AT+CMGF=1" + (char)(13)); 
                Thread.Sleep(3000);
                this.serialPort.WriteLine("AT + CMGL = ALL" + (char)(26));
                Thread.Sleep(5000);
                string a = this.serialPort.ReadExisting();
                MessageBox.Show(a);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Source);
            }
           return true;
        }
        else
            return false;

    }
    public void Opens()
    {
        if(this.serialPort.IsOpen == false)
        {
            this.serialPort.Open();
        }
    }
    public void Closes()
    {
        if (this.serialPort.IsOpen == true)
        {
            this.serialPort.Close();
        }
    }
`替换此行“this.serialPort.WriteLine”(“AT+CMGL=ALL”+(char)(26))

对于这个,this.serialPort.WriteLine(“AT+CMGL=\“ALL\”+(char)(13))

我希望您不会出现错误。

更换线路

this.serialPort.WriteLine("AT");

并将
26
更改为
13

this.serialPort.WriteLine("AT" + (char)(13));