Android - запрашивать все MMS и SMS из определенного Thread_ID

Как я могу запросить все сообщения, отправленные с определенного адреса?

Я не смог найти ответ на StackOverflow после многих дней поиска.

В настоящее время я получаю все сообщения вроде этого:

Uri uri = Uri.parse("content://sms/");
Cursor managedCursor = getContentResolver().query(uri, null, ("thread_id = " + ThreadID), null, "date ASC");

Но это возвращает только SMS-сообщения (без MMS). Я попытался изменить content://sms/ на content://mms-sms/, но это не удалось распознать. Я также пытался запросить content://mms-sms/conversations/xxx, где xxx - thread_id, но это дало мне исключение NullPointerException.

Я искал решение этой проблемы несколько дней. Другие приложения для SMS, такие как Go SMS и Sliding Messaging, могут делать это отлично, но я просто не могу понять этого ...


person Pkmmte    schedule 10.10.2013    source источник
comment
stackoverflow.com / questions / 3012287 / Это может помочь!   -  person Adnan Mulla    schedule 10.10.2013
comment
Видел это, и я пробовал то, что он предлагает, все равно никакой помощи.   -  person Pkmmte    schedule 12.10.2013
comment
@Pkmmte вы решили свою проблему?   -  person Erum    schedule 11.02.2015


Ответы (1)


Аргумент проекции null для content://mms-sms/conversations/xxx - это то, что вызывает NullPointerException --- если вы явно проецируете нужные столбцы (например, {"address", "body", "date"}), он должен работать нормально.

Однако запрос с помощью thread_id не строго зависит от адреса, с которого отправлено сообщение; если вы этого хотите, вам, вероятно, следует заглянуть в content://sms/inbox (который игнорирует отправленные вами сообщения) и использовать аргументы выбора для запроса интересующего вас адреса:

Uri uri = Uri.parse("content://sms/inbox");
Cursor managedCursor = getContentResolver().query(uri, null, "address=?", {targetedAddress}, "date ASC");
person haaksmash    schedule 22.12.2013