我可以在 android 的 Contacts Provider 上找到哪些信息

What kind of information can i find on android's Contacts Provider

我正在开发一个 android 应用程序,我需要了解有关 phone 个联系人的所有信息。

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

我从下面得到了 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 吗?

经过与@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