我正在开发一个Android应用程序,我需要知道有关手机联系人的所有信息。
我开发了一个功能来获取所有联系人的姓名和号码,但我需要有关特定联系人的所有信息,如电子邮件,日期,喜欢与否,图片,社交链接(如果有)。
我从以下网址获得id
,name
和number
:
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吗?
答案 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