Android-телефония.SMS-сообщения

Как может Telephony.Sms.Conversations использоваться для извлечения информации о конвоировании в строку?

Я старался:

ContentResolver cr = context.getContentResolver();
Cursor convo = cr.query(Telephony.Sms.Conversations.CONTENT_URI,
                        new String[] { Telephony.Sms.Conversations.ADDRESS,
                                       Telephony.Sms.Conversations.PERSON },
                        null,
                        null,
                        Telephony.Sms.Conversations.DEFAULT_SORT_ORDER);

Как только я получаю ошибку invalid column address, когда я удаляю адрес, я получаю invalid column person, Какие столбцы предоставляет этот класс? (Я не смог найти что-либо на справочной странице API или каких-либо примерах в Интернете. Кстати, у меня уже есть рабочий код для извлечения входящих и исходящих сообщений, но я также хотел бы получать разговоры (я имею в виду заголовок и количество сообщений), без сопоставления входящих и исходящие результаты)

1 ответ

Вы можете получить только значения "msg_count" и "snippet" из Telephony.Sms.Conversations, а значение "address" - из Telephony.TextBasedSmsColumns.

private static final String[] SMS_CONVERSATIONS_PROJECTION = new String[]{"msg_count", "snippet"};
Cursor cursor = cr.query(Telephony.Sms.Conversations.CONTENT_URI,
            SMS_CONVERSATIONS_PROJECTION, null, null,Telephony.Sms.Conversations.DEFAULT_SORT_ORDER);
while(cursor.moveToNext()) {
    int msg_count = cursor.getInt(cursor.getColumnIndex("msg_count"));
    String snippet = cursor.getString(cursor.getColumnIndex("snippet"));
}
cursor.close;

Нам неудобно без "адреса", "даты" и тд.
Telephony.Sms.Conversation

Другие вопросы по тегам