Как получить все детали контакта в Android
Имея идентификатор контакта, я могу получить различные контактные данные (например, имя, телефон, адрес электронной почты и т. Д.), Выполняя различные запросы для каждого из этих полей.
Но есть ли способ получить все детали, связанные с этим идентификатором контакта, выполнив один запрос?
1 ответ
Решение
Пришлось немного изменить учебник по контент-провайдерам, так как он ссылался на устаревшие классы, это могло бы помочь.
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");