Я работаю над приложением, которое отправляет SMS через GSM-модем, и для этого я использую AT-команды. Когда я отлаживаю свое приложение, затем смс отправляется получателю, но когда я запускаю приложение, смс не отправляется получателю. Мой код приведен ниже, а мой GSM-модем - D-Link DWM-156. что-то не так в моем коде? Благодарю.
если (SPort.IsOpen) {
int i = 0;
while (i < msgs.Count)
{
SPort.DiscardInBuffer();
System.Threading.Thread.Sleep(1000);
var res = SPort.ReadExisting();
SPort.DiscardOutBuffer();
System.Threading.Thread.Sleep(1000);
SPort.Write("AT\r");
System.Threading.Thread.Sleep(1000);
while ((res = SPort.ReadExisting()).Contains("ERROR")) ;
resultResponse += "1" + res + "---";
SPort.Write("AT+CMGF=0\r");
System.Threading.Thread.Sleep(100);
while ((res = SPort.ReadExisting()).Contains("ERROR")) ;
resultResponse += "2" + res + "---";
SPort.Write("AT+CSCS=\"HEX\"\r");//char set
System.Threading.Thread.Sleep(100);
while ((res = SPort.ReadExisting()).Contains("ERROR")) ;
resultResponse += "3" + res + "---";
SPort.Write("AT+CSMP=17,71,0,17\r");
System.Threading.Thread.Sleep(100);
while ((res = SPort.ReadExisting()).Contains("ERROR")) ;
resultResponse += "4" + res + "---";
string hexString = msgs[i];
SPort.Write(string.Format("AT+CMGS={0}\r", (hexString.Length - 16) / 2));
System.Threading.Thread.Sleep(100);
while ((res = SPort.ReadExisting()).Contains("ERROR")) ;
resultResponse += "5" + res + "---";
SPort.Write(string.Format("{0}{1}\n", hexString, Convert.ToChar(26)));
System.Threading.Thread.Sleep(100);
while ((res = SPort.ReadExisting()).Contains("ERROR")) ;
resultResponse += "6" + res + "---";
System.Threading.Thread.Sleep(1500);
response += res;
i++;
}
}