关于网友提出的“关于回调接收短信内容不循环的问题,谢谢”问题疑问,本网通过在网上对“关于回调接收短信内容不循环的问题,谢谢”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:关于回调接收短信内容不循环的问题,谢谢
描述:使用SDK开发短信收发平台,收短信使用回调,经过一番修改,终于可正常接收,但是发现一个问题:如果有2条短信需要接收,显示接收到的数据一样,包括号码、内容、时间都是一样的,具体代码如下:
//引用DLL [DllImport("EUCPComm.dll", EntryPoint ="ReceiveSMSEx")] // 接收短信publicstaticexternint ReceiveSMSEx(string sn, deleSQF mySmsContent);
//回调(接收短信)staticvoid getSMSContent(string mobile, string senderaddi, string recvaddi, string ct, string sd, refint flag)
{
string mob = mobile;
string content = ct;
int myflag = flag;
//在此处将短信内容存入datatable DataRow RecRow = TempDT.NewRow();
RecRow[0] = mobile;
RecRow[1] = ct;
RecRow[2] = sd;
TempDT.Rows.Add(RecRow);
}
publicdelegatevoid deleSQF(string mobile, string senderaddi, string recvaddi, string ct, string sd, refint flag);
deleSQF mySmsContent =new deleSQF(getSMSContent);
//声明静态的DataTablepublicstatic DataTable TempDT =new DataTable();
//Form1_Load中初始化DataTableprivatevoid Form1_Load(object sender, EventArgs e)
{
TempDT.Columns.Add("mob");
TempDT.Columns.Add("con");
TempDT.Columns.Add("rtime");
}
//button5单击事件收取短信privatevoid button5_Click(object sender, EventArgs e)
{
deleSQF mySmsContent =new deleSQF(getSMSContent);
//接收短信 序列号 函数指针int result =2;
while (result ==2) //当result = 2 时,说明还有下一批短信等待接收,这时需重新再调用一次ReceiveSMS方法 {
result = ReceiveSMSEx(textBox1.Text, mySmsContent);
if (result ==1)
{
textBox3.Text +="接收短信成功:"+DateTime.Now.ToString()+"\r\n";
}
elseif (result ==101)
{
textBox3.Text +="网络故障:"+ DateTime.Now.ToString() +"\r\n";
}
elseif (result ==102)
{
textBox3.Text +="其它故障:"+ DateTime.Now.ToString() +"\r\n";
}
elseif (result ==105)
{
textBox3.Text +="参数指针为空:"+ DateTime.Now.ToString() +"'\r\n";
}
elseif (result ==0)
{
textBox3.Text +="失败:"+ DateTime.Now.ToString() +"\r\n";
}
elseif (result ==-1)
{
textBox3.Text +="未知故障:"+ DateTime.Now.ToString() +"\r\n";
}
}
//如果TempDT有记录if (TempDT.Rows.Count >0)
{
foreach (DataRow row in TempDT.Rows)
{
//显示短信号码、内容、时间。就这里出错,如果有2条未接受短信,点接收时,textBox3中显示接受到的两条记录是一样的 textBox3.Text += row[0].ToString() +"/"+ row[1].ToString() +"/"+ row[2].ToString() +"\r\n";
}
清空TempDT
TempDT.Clear();
}
}
解决方案1:你看看这个方法是怎么处理的
ReceiveSMSEx
以上介绍了“关于回调接收短信内容不循环的问题,谢谢”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1104396.html