我想用我的诺基亚手机(C1-01)使用AT命令发送短信,并且我可以使用此vb.net代码成功发送短信。通过诺基亚移动通过AT命令发送短信
Button_Send_Click:
Dim SMSPort = New SerialPort
With SMSPort
.PortName = "COM2"
.BaudRate = 9600
.Parity = Parity.None
.DataBits = 8
.StopBits = StopBits.One
.Handshake = Handshake.None
.DtrEnable = True
.RtsEnable = True
.NewLine = vbCrLf
End With
SMSPort.Open()
SMSPort.Write("AT+CMGF=1" & vbCrLf)
Threading.Thread.Sleep(200)
SMSPort.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf) 'TextBox1.text = Recipient mobile number and chr(34) = "
Threading.Thread.Sleep(200)
SMSPort.Write("TEST MESSAGE" & Chr(26)) 'chr(26) = →
Threading.Thread.Sleep(200)
MsgBox(SMSPort.ReadExisting())
SMSPort.Close()
它的正常工作的第一时间,消防此代码后,我收到短信我的手机TEST MESSAGE
(辉煌),但是,当我按在我收到的短信我的手机在第二次发送按钮,其中包含: AT+CMGF=1 AT+CMGS=+92XXYYYYYY TEST MESSAGE
为什么在第二次它包括“AT命令即AT + CMGF等......”在SMS? 如何从中删除不需要的文本? 我也尝试SMSPort.DiscardInBuffer()
和SMSPort.DiscardOutBuffer()
打开和关闭我的串行端口(SMSPort)之前的属性,但我的问题不解决。 我GOOGLE了很多,但都是徒劳的,请帮我解决这个问题。
平台:微软的Visual Basic 2010与.NET 2.0
只是好奇你为什么在诺基亚手机上使用AT命令。如果你使用GSM库,这将会容易得多。我使用了几个开源库,它们工作正常。我还在连接到一个准系统GSM模块的微控制器上完成了AT命令,事情是......你将不得不使用一些延迟,这样GSM模块才能赶上你发送给它的东西:) –