【发布时间】:2012-05-10 08:10:22
【问题描述】:
我是 android 编程新手,如果这是一个简单的问题,请原谅。如何从通讯录中获取联系人总数?
【问题讨论】:
-
你的意思是联系人总数还是所有有详细信息的联系人?
-
我的意思是总数。
-
参考这个 SO 答案。 stackoverflow.com/questions/4290287/…
标签: android
我是 android 编程新手,如果这是一个简单的问题,请原谅。如何从通讯录中获取联系人总数?
【问题讨论】:
标签: android
查找所有联系人的电话号码计数
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
【讨论】:
READ_CONTACTS
<uses-permission android:name="android.permission.READ_CONTACTS"/>
对于联系人总数,请使用以下代码。
Cursor cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
int count = cursor.getCount();
【讨论】: