我希望能够从收到的短信中提取文字。 我不确定是否应该使用内容提供商,或者广播接收者收到的意图中包含sms消息。
我有一个等待短信的广播接收器,并希望检查收到的短信的内容。
谢谢。
答案 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]。这应该是评论,而不是答案,但到写作时,我的声誉不允许我发表评论。