2010-02-05 2 views
7

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

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

+0

@Octavian: Я не уверен, что согласен с удалением * Android * из названия вопроса. Это кажется довольно распространенным явлением для вопросов по другим технологиям. Это может быть вопрос редактирования для meta – NotMe

+0

@ChrisLively Я должен признать, что вы можете быть правы на этом. Я изменю его. –

ответ

12

Чтобы изменить немного учебника на Content Providers, поскольку он ссылается на устаревшие классы, это может помочь.

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"); 
+0

Спасибо за быстрый ответ. Но я использую 1.6 SDK, а ContactsContract, похоже, работает на 2.0 и выше. Любое решение для версий 1.6 и ниже для Android – pankajagarwal

+0

@frieza Вернитесь назад и посмотрите на это учебное пособие по контент-провайдерам, связанное с ним в верхней части ответа. Очевидно, Энтони взял учебник и обновил его до 2.0, когда отправил свой ответ, но вам нужен оригинальный учебник. –

+0

Er, это была моя ошибка. Я пошел вперед и предположил, что это 2.0 SDK, но mbaird прав, учебник в ссылке «Поставщики контента» должен работать отлично. –

Смежные вопросы