联系人列表中有多少联系人

时间:2010-11-27 05:32:16

标签: android contacts android-contacts

如何判断联系人列表中有多少联系人?我收到了联系电话,但是一个人可以有多个联系人,我想在查找联系人列表中的联系人总数时考虑到这一点。

3 个答案:

答案 0 :(得分: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

希望这能解决你的疑问!

答案 1 :(得分: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();

答案 2 :(得分:0)

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

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

当然,不推荐使用managedQuery,但这有助于绑定:)