首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# GSMcomm在MessageReceived触发时提取短信

C# GSMcomm在MessageReceived触发时提取短信
EN

Stack Overflow用户
提问于 2015-11-21 18:51:18
回答 1查看 1.3K关注 0票数 0

有没有办法在触发MessageReceived事件时提取新收到的消息的内容并将其放入字符串变量中?

EN

回答 1

Stack Overflow用户

发布于 2016-02-18 10:24:46

只需像下面这样添加方法就可以了:

代码语言:javascript
复制
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));
    }
}

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

代码语言:javascript
复制
comm.MessageReceived += new MessageReceivedEventHandler(comm_MessageReceived);

我希望这能有所帮助:D

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33842435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档