Android - 从短信中提取文字

时间:2010-11-06 15:52:51

标签: android sms android-intent broadcastreceiver

我希望能够从收到的短信中提取文字。 我不确定是否应该使用内容提供商,或者广播接收者收到的意图中包含sms消息。

我有一个等待短信的广播接收器,并希望检查收到的短信的内容。

谢谢。

2 个答案:

答案 0 :(得分:5)

您可以通过SmsMessage中的Intent创建BroadcastReceiver个实例,如下所示:

Bundle bundle = intent.getExtras();
Object[] pdus = (Object[])bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
    messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
    //messages[i].getMessageBody();
}

答案 1 :(得分:2)

请注意,多部分(连接)短信中每条短信的长度不是160个字符,因为每个短信都以数据标题开头,所以160个字符不是每个短信的实际大小,而是字符消息连接的长度。此外,此边界取决于消息的编码。

有关详细信息,请参阅[link text] [1]。这应该是评论,而不是答案,但到写作时,我的声誉不允许我发表评论。

[1]:http://en.wikipedia.org/wiki/SMS#Message_size邮件大小