我正在使用GSMComm库和Wavecom创建简单的程序SMS发件人,当我按下按钮发送我的winform一个在我的VS2010中得到一个消息调试。
电话报告一个未指定的错误。这种情况通常发生在设备不支持命令、命令对当前状态无效或参数不正确时。
这是我的代码
private void btnSend_Click(object sender, EventArgs e)
{
var port = "COM3"; // default port to connect modem wavecom
var baudRate = 115200;
var timeout = 300;
var comm = new GsmCommMain(port, baudRate, timeout);
try
{
var msg = txtIsiPesan.Text;
var phoneNumber = txtNoTujuan.Text;
comm.Open();
SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "");
comm.SendMessage(pdu); //debug found error here
comm.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "error");
}
}这是否表明我的波形调制解调器不支持SmsSubmitPdu?请建议我谢谢。
发布于 2016-03-06 04:00:02
我终于找到了解决办法。
SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "");第三个参数应该是服务中心号,因为我使用的是+8801700000600。
所以我试着
SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "+8801700000600");并成功发送短信。顺便说一句,确保您的com端口是正确的,正如我的是COM5。
var port = "COM5"; // default port to connect modem wavecom
var baudRate = 115200;
var timeout = 300;
var comm = new GsmCommMain(port, baudRate, timeout);
try
{
var msg = "TESTING";
var phoneNumber = "+8801719461643";
comm.Open();
SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "+8801700000600");
comm.SendMessage(pdu); //debug found error here
comm.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "error");
}发布于 2016-03-07 04:02:43
当comm打开时,您可以通过while循环进行长时间轮询,读取短消息并删除sms msg.Add的索引-- comm.Open();之后的代码
while(true){
DecodedShortMessage[] messages =
gsmCommMain.ReadMessages(PhoneMessageStatus.All, PhoneStorageType.Sim);
foreach (var decodedShortMessage in messages)
{
var msgData = decodedShortMessage.Data.UserDataText;
int indexP = decodedShortMessage.Index;
gsmCommMain.DeleteMessage(indexP, PhoneStorageType.Sim);
// gsmCommMain.DeleteMessages(DeleteScope.Read, PhoneStorageType.Sim); delete all msg
}
}希望这能有所帮助
https://stackoverflow.com/questions/28910230
复制相似问题