我可以在Android的联系人提供商处找到什么样的信息

时间:2016-12-11 17:50:30

标签: android android-contacts contactscontract

我正在开发一个Android应用程序,我需要知道有关手机联系人的所有信息。

我开发了一个功能来获取所有联系人的姓名和号码,但我需要有关特定联系人的所有信息,如电子邮件,日期,喜欢与否,图片,社交链接(如果有)。

我从以下网址获得idnamenumber

String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

我使用ContactsContract.Contacts来获取_ID和DISPLAY_NAME,但是 ContactsContract.CommenDataKinds.Phone获取NUMBER。这是对的吗?

请解释两种方法之间的区别。

_ID是所有联系人的唯一ID吗?

1 个答案:

答案 0 :(得分:1)

经过与@pskink的长时间讨论后,我终于找到了解决方案,列出目录中每个联系人的所有相关信息。 首先,创建一个游标:

Cursor cursor = cr.query(ContactsContract.Data.CONTENT_URI, null, null, null, null);

然后,您可以通过使用以下代码行来显示所有信息,并查看需要使用的每个联系人和关键字,如(custom_ringtone,display_name,photo_uri,is_primary,..):

DatabaseUtils.dumpCursor(cursor);

特别感谢@pskink