Получение всех деталей для определенного контакта - PullRequest
0 голосов
/ 19 мая 2018

У меня есть идентификатор и ключ поиска для определенного контакта в Android.

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

Это то, что указано в документации

ПРОЕКТ ПОЛУЧЕНИЯ ВСЕХ ДАННЫХ:

private static final String PROJECTION =
            {
                Data._ID,
                Data.MIMETYPE,
                Data.DATA1,
                Data.DATA2,
                Data.DATA3,
                Data.DATA4,
                Data.DATA5,
                Data.DATA6,
                Data.DATA7,
                Data.DATA8,
                Data.DATA9,
                Data.DATA10,
                Data.DATA11,
                Data.DATA12,
                Data.DATA13,
                Data.DATA14,
                Data.DATA15
            };

Но как мне узнать, какие поля относятся к какому полю?Эти поля DATA {} являются общими, и документация немного сбивает с толку.Может ли кто-нибудь помочь мне разобрать курсор, который дает эта проекция?

Вот документация , о которой я говорил.

1 Ответ

0 голосов
/ 22 мая 2018

Сначала нужно проверить Data.MIMETYPE, и в зависимости от типа mime вы можете определить, какое значение данных находится в каком элементе DATA.

Например, если MIMETYPE равно CommonDataKinds.Phone.CONTENT_ITEM_TYPE, затем вы можете проверить псевдонимы, описанные в этой таблице, чтобы понять значения: https://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Phone#column-aliases

В качестве альтернативы вы можете изменить PROJECTION на:

private static final String PROJECTION =
            {
                Data._ID,
                Data.MIMETYPE,
                Phone.NUMBER, 
                Phone.TYPE, 
                Email.ADDRESS,
                Email.TYPE,
                ...
            }

Поскольку эти псевдонимыпреобразовать в один и тот же набор констант (DATA1, DATA2 и т. д.), на производительность это не повлияет, и код может быть более читабельным.

...