Как получить контактную информацию из recepient_ids в таблице потоков - PullRequest
4 голосов
/ 23 октября 2011

Это экземпляр таблицы 'threads'

_id| recipient_ids| snippet
1  |   1          |Hi this is hello world
2  |   2          |Multiple send
3  | 1 3 4        |Send

Значения, соответствующие recepient_ids, помещаются в таблицу 'canonical_addresses'

_id|  address
1  |9879565655
2  |1111111111
3  |5465321348
4  |8965321354

Теперь мне нужно получить 'canonical_addresses.address' для каждого 'threads.recipient_ids', присутствующего в таблице потоков (время от времени аргумент получателя может быть больше одного)?

Примечание: Я использую content://mms-sms/conversation для извлечения деталей из таблицы потоков.

Ответы [ 3 ]

2 голосов
/ 16 июля 2012

вам необходимо сформулировать запрос согласно приведенному ниже:

String [] colAddress={"DISTINCT address"};
Cursor cur = getContentResolver().query(uriSMSURI, colAddress, null, null,null);
1 голос
/ 30 октября 2011

Я не смог найти прямого решения по этому поводу.

Действительно, для получения запроса сведений о получателе Content://sms/ с идентификатором потока.

выберите отдельный адрес от курсора.

Мы сможем получить данные получателя.

Для более эффективных способов, пожалуйста, ответьте на него.

Фрагмент выглядит следующим образом

Uri THREAD_ID_CONTENT_URI = Uri.parse("content://sms/");

Cursor cur = getContentResolver().query(uribuilder.build(), new String[]{"address"},"thread_id=#) group by (address", null,null);

Спасибо тебе

0 голосов
/ 19 ноября 2014

Используйте этот URI для получения

ContentResolver cr = context.getContentResolver();
    Cursor pCur = cr.query(
            Uri.parse("content://mms-sms/canonical-addresses"), new String[]{"address"},
            "_id" + " = ?",
            new String[]{your_thread_id}, null);

    String contactAddress = null;

    if (pCur != null) {
        if (pCur.getCount() != 0) {
            pCur.moveToNext();
            contactAddress = pCur.getString(pCur.getColumnIndex("address"));
        }
        pCur.close();
    }
...