Как получить все детали контакта в Android - PullRequest
7 голосов
/ 05 февраля 2010

Учитывая идентификатор контакта, я могу получить различные контактные данные (например, имя, телефон, адрес электронной почты и т. Д.), Выполняя различные запросы для каждого из этих полей.

Но есть ли способ получить все детали, связанные с этим идентификатором контакта, выполнив один запрос?

1 Ответ

12 голосов
/ 05 февраля 2010

Пришлось немного изменить учебник по контент-провайдерам , поскольку он ссылался на устаревшие классы, это может помочь.

import android.provider.ContactsContract.Contacts;
import android.database.Cursor;

// Form an array specifying which columns to return, you can add more.
String[] projection = new String[] {
                         ContactsContract.Contacts.DISPLAY_NAME,
                         ContactsContract.CommonDataKinds.Phone
                         ContactsContract.CommonDataKinds.Email
                      };

Uri contacts =  ContactsContract.Contacts.CONTENT_LOOKUP_URI;
// id of the Contact to return.
long id = 3;

// Make the query. 
Cursor managedCursor = managedQuery(contacts,
                     projection, // Which columns to return 
                     null,       // Which rows to return (all rows)
                                 // Selection arguments (with a given ID)
                     ContactsContract.Contacts._ID = "id", 
                                 // Put the results in ascending order by name
                     ContactsContract.Contacts.DISPLAY_NAME + " ASC");
...