Как узнать, сколько контактов есть в списке контактов? У меня есть контактный номер, но у одного человека может быть несколько контактов, и я хочу учесть это при нахождении общего количества контактов в списке контактов.
Чтобы найти счетчик телефонных номеров всех контактов
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
Надеюсь, это разрешит ваши сомнения!
Действительно старый поток, но если вы хотите подсчитать контакты с телефонными номерами, вы можете использовать это:
Курсор курсора = managedQuery (ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts.HAS_PHONE_NUMBER, null, null); int count = cursor.getCount ();
Конечно, теперь managedQuery устарел , но это может помочь в привязке 🙂