当MessageReceived被触发时,C#GSMomm提取SMS

本文关键字:C#GSMomm 提取 SMS MessageReceived | 更新日期: 2023-09-27 18:23:48

在触发MessageReceived事件时,是否有方法提取新接收消息的内容并将其放置在字符串变量中?

当MessageReceived被触发时,C#GSMomm提取SMS

添加这样的方法很简单:

private void comm_MessageReceived(object sender, MessageReceivedEventArgs e)
{
    var obj = e.IndicationObject;
    if (obj is MemoryLocation)
    {
        var loc = (MemoryLocation)obj;
        var msg = string.Format("New message received in storage '"{0}'", index {1}.",
                                loc.Storage, loc.Index);
        MessageBox.Show(msg);
        DecodedShortMessage[] messages = CommSetting.comm.ReadMessages(PhoneMessageStatus.All, PhoneStorageType.Sim);
        foreach (DecodedShortMessage message in messages)
        {
            DisplayMessage(message.Data);
        }
        return;
    }
}
private void DisplayMessage(SmsPdu pdu)
{
    if (pdu is SmsDeliverPdu)
    {
        SmsDeliverPdu data = (SmsDeliverPdu)pdu;
        var phoneNumber = data.OriginatingAddress; 
        var msg = data.UserDataText;
        var date = string.Format("{0:dd/MM/yyyy}", data.SCTimestamp.ToDateTime());
        var time = string.Format("{0:HH:mm:ss}", data.SCTimestamp.ToDateTime());
        //read message in listBox1
        listBox1.Items.Add(string.Format("{0}, {1}, {2}, {3}", date, time, phoneNumber, msg));
    }
}

但不要忘记在连接打开时注册此事件:

comm.MessageReceived += new MessageReceivedEventHandler(comm_MessageReceived);

我希望这个帮助:D