2010-11-27 5 views
5

Как узнать, сколько контактов в списке контактов? Я получил контактный номер, но у одного человека может быть более одного контакта, и я хочу учесть это при поиске общего количества контактов в списке контактов.Сколько контактов в списке контактов

ответ

11

Чтобы найти количество телефонных номеров всех контактов

Cursor cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); 

int count = cursor.getCount(); 

Чтобы найти количество всех телефонных номеров определенного RawContactID (передать значение идентификатор контакта в rawContactId).

Cursor cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID + " = " + rawContactId, null, null); 

    int count = cursor.getCount(); 

Количество контактов, отображаемых в составе ContactsListActivity, может быть определено следующим запросом.

Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 

int count = cursor.getCount();

Однако, если человек был введен под несколькими учетными записями, то по указанному выше запросу получается только один экземпляр как ContactsContract.Contacts объединяет все такие контакты.

Cursor cursor = managedQuery(RawContacts.CONTENT_URI, null, null, null, null); 

int count = cursor.getCount();

Соотношение между ContactsContract.Contacts и RawContacts можно найти на http://developer.android.com/resources/articles/contacts.html

Надежда это решает ваши сомнения!

+0

извините, но это dosent work.it дает мне, что и у какого дозатора нет контакта, у которого есть только идентификаторы электронной почты. поэтому можем ли мы иметь общее количество телефонных номеров, которые хранятся в списке контактов? – nimi 2010-11-27 08:38:57

0

действительно старая нить, но если вы хотите считать контакты с номерами телефонов вы можете использовать это:

Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts.HAS_PHONE_NUMBER, null, null); 
int count = cursor.getCount(); 

Конечно managedQuery устарело сейчас, но это может помочь в затруднительном :)

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