5

如何知道联系人列表中有多少联系人?我得到了联系号码,但一个人可以有多个联系人,我想在查找联系人列表中的联系人总数时考虑到这一点。

4

3 回答 3

11

查找所有联系人的电话号码计数

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

int count = cursor.getCount();

查找特定 RawContactID 的所有电话号码的计数(在 rawContactId 中传递联系人 id 值)。

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找到

希望这能解决您的疑问!

于 2010-11-27T07:02:47.137 回答
1

一个非常古老的线程,但如果你想用电话号码计算联系人,你可以使用这个:

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

当然 managedQuery 现在已被弃用,但这可以帮助绑定:)

于 2013-11-12T16:20:52.787 回答
1

正如我们所知,managedQuery 现在已被弃用,我们可以像这样执行此任务

ContentResolver contentResolver = getContentResolver();
            Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
            int contactNewCount = cursor.getCount();
            cursor.close();
于 2021-05-02T20:14:45.153 回答