Android - извлечение текста из SMS - PullRequest
4 голосов
/ 06 ноября 2010

Я хочу иметь возможность извлекать текст из полученных SMS.Я не уверен, следует ли мне использовать контент-провайдеров, или смс-сообщение включено в намерение, полученное широковещательным получателем.

У меня есть широковещательный получатель, ожидающий SMS, и я хочу проверить содержимое полученного сообщения..

Спасибо.

Ответы [ 2 ]

5 голосов
/ 06 ноября 2010

Вы можете создать 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();
}
2 голосов
/ 13 ноября 2010

Обратите внимание, что длина каждого SMS-сообщения в составном (составном) SMS-сообщении не составляет 160 символов, поскольку каждое из них начинается с заголовка данных, поэтому 160 символов - это не фактический размер каждого SMS-сообщения, а символы длина, с которой сообщение становится сцепленным. Кроме того, эта граница зависит от кодировки сообщения.

Для получения дополнительной информации см. [Текст ссылки] [1]. Это должен быть комментарий, а не ответ, но на момент написания его моя репутация не позволяет мне оставлять комментарии.

[1]: http://en.wikipedia.org/wiki/SMS#Message_size размер сообщения

...