Android-телефония.Sms.Разговоры

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

Я старался:

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 или каких-либо примеров в Интернете. Кстати, у меня уже есть рабочий код для получения входящих и исходящих сообщений, но я также хотел бы получать разговоры (я имею в виду название и количество сообщений), без сопоставления входящих и исходящие результаты)


person Arijoon    schedule 05.09.2014    source источник
comment
столкнулся с той же проблемой, нашел ответ здесь: /а>   -  person Daniel H    schedule 03.12.2014
comment
Вы когда-нибудь решали это? у меня точно такая же проблема   -  person Matt    schedule 25.04.2016


Ответы (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;

Нам неудобно без "адреса", "даты" и прочего.
Телефония.Sms.Разговор

person lovefish    schedule 08.01.2015