首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SmsMessage.isEmail()总是返回false

SmsMessage.isEmail()总是返回false
EN

Stack Overflow用户
提问于 2011-08-28 13:22:17
回答 2查看 186关注 0票数 0

因此,在我的应用程序中,我响应收到的短信,我希望能够回复通过电子邮件地址发送的短信,但isEmail()总是返回false,因此getEmailFrom()和getEmailBody()总是返回null。下面是我的代码:

代码语言:javascript
复制
Bundle bundle = intent.getExtras(); 
    String recMsgString = "";            
    String fromAddress = "";
    String tag = "SMS_RECEIVED";

if (bundle != null)
{
    //---retrieve the SMS message received---
   Object[] pdus = (Object[]) bundle.get("pdus");

    for (int i=0; i<pdus.length; i++){
        SmsMessage recMsg = SmsMessage.createFromPdu((byte[])pdus[i]);

        recMsgString = recMsg.getMessageBody();  

        fromAddress = recMsg.getOriginatingAddress();

        if (recMsg.isEmail()){
           fromAddress = recMsg.getEmailFrom();
           recMsgString = recMsg.getEmailBody();
        }

}

       //do some logging
//code to react to the message
       }
}

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-12 01:27:49

我有点想通了,但我不确定为什么它能行得通...

因此,在我的应用程序中,我没有检查isEmail,然后使用getEmailFromgetEmailBody,而是只获取了发送者(大概是14100000011),然后使用了recMsgString.contains(myKeyword)

然后,我的应用程序会向14100000011发送一条消息,然后它会发送到我的电子邮件中。

不过,我真的不太确定它为什么会这样。我猜AT&Ts电子邮件网关只是把它送回我发送它的地方。不知道这能行得通。

顺便说一句,有没有人知道其他运营商的功能?

也就是说,如果您从gmail发送电子邮件(或其他电子邮件)到您的电话号码:

AT&T: phonenumber@txt.att.net

T-Mobile: phonenumber@tmomail.net

威瑞森: phonenumber@vtext.com

Sprint: phonenumber@messaging.sprintpcs.com

然后回复,你在电子邮件中收到消息了吗?

如果有人愿意对此进行测试,请留言说明您的运营商是谁,您的电子邮件提供商是谁,以及测试的结果。

票数 1
EN

Stack Overflow用户

发布于 2011-08-28 13:32:06

嗯,我从来没有听说过一个叫做isEmail()的字符串方法--也许我漏掉了什么?

你声明

代码语言:javascript
复制
String recMsgString = "";

然后尝试访问

代码语言:javascript
复制
recMsgString.isEmail()

它并不存在。另外,我注意到您将recMsgString设置为等于recMsg.getMessageBody()

代码语言:javascript
复制
recMsg.getMessageBody();

我不认为getMessageBody()函数会返回一封电子邮件。

我想你想做的是:

代码语言:javascript
复制
SmsMessage recMsg = SmsMessage.createFromPdu((byte[])pdus[i]);

        ...

        if (recMsg.isEmail()){
           fromAddress = recMsg.getEmailFrom();
           recMsgString = recMsg.getEmailBody();
        }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7219193

复制
相关文章

相似问题

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