Функция listLookupUriColumns из. берет первый контакт из списка всех контактов, формирует для этого контакта URI поиска и запускает полученный URI, чтобы посмотреть, какой курсор возвратится, выводя для этого имена столбцов из курсора.
Оказывается, он просто возвращает курсор, который идентичен по столбцам курсору агрегированного контакта, показанному ., но содержит только одну строку, которая указывает на контакт, соответствующий ключу поиска. Также обратите внимание на применение следующего определения URI поиска:
ContactsContract.Contacts.CONTENT_LOOKUP_URI
Из обсуждения URI поиска контактов вы знаете, что каждый такой URI представляет коллекцию идентификаторов низкоуровневых контактов, которые соединены между собой. В таком случае можно было ожидать, что URI поиска вернет последовательность подходящих низкоуровневых контактов. Однако тест . показал, что возвращается не курсор низкоуровневых контактов, а курсор контактов.
На заметку! Поиск на основе URI поиска контактов возвращает агрегированный контакт, а не низкоуровневый контакт.
Еще один момент состоит в том, что процесс поиска агрегированного контакта, основанный на URI поиска, не является линейным или точным. Это значит, что Android не будет искать точное совпадение с ключом поиска. Вместо этого среда Android разбивает ключ поиска на составляющие его низкоуровневые контакты. Затем она ищет идентификатор агрегированного контакта, который совпадает с большинством записей низкоуровневых контактов, и возвращает эту запись агрегированного контакта.
Одним из следствий является отсутствие общедоступного механизма для перехода от ключа поиска к составляющим его низкоуровневым контактам. Вместо этого понадобится найти идентификатор контакта для данного ключа поиска и затем обратиться по URI низкоуровневого контакта для этого идентификатора, чтобы извлечь соответствующие низкоуровневые контакты.
Имеется еще один фрагмент кода, который отображает то, что возвращается из курсора, в виде объекта, а не набора столбцов. Этот фрагмент представлен ., и он возвращает первый агрегированный контакт как объект.
На заметку! Код AggregatedContact был представлен ., когда мы начали говорить о просмотре агрегированных контактов. Большая часть фрагментов кода, приводимых в этом разделе, взята из файла AggregatedContactFunctionTester.java.
Просмотр низкоуровневых контактов
В этом разделе будет, как просматривать низкоуровневые контакты http://аквилон-ас.рф/kruglye-vozduhovody/. Весь представленный в разделе код находится в файле RawContactFunctionTester.java, если только не указано иначе.
Здесь будут продемонстрированы три аспекта, связанные с агрегированными контактами.
Обнаружение всех полей, возвращаемых с помощью URI, которому известно, как читать низкоуровневые контакты.
Отображение всех низкоуровневых контактов.
Вывод списка всех низкоуровневых контактов для набора агрегированных контактов.
В классе RawContact, ном ., захватываются некоторые важные поля из курсора таблицы raw_contacts. (Файл RawContact.java, как и все прочие фрагменты кода в этой, доступен в составе загружаемого проекта, предназначенного для данной.)
Опубликовал katy
February 19 2015 18:33:55 ·
0 Комментариев ·
3065 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.