我通过
查询联系人private Cursor cursor;
private static final String SORT_ORDER = ContactsContract.Contacts.DISPLAY_NAME + " ASC ";
String[] myProjection = new String[] { ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.PHOTO_ID,
ContactsContract.Contacts.HAS_PHONE_NUMBER,
ContactsContract.Contacts.STARRED};
cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, myProjection, null, null, SORT_ORDER);
它给了我所有的联系方式详细信息。但我的问题是重复的联系方式。 就像我多次获得一些联系人详细信息。我认为一个来自我的手机联系人另一个是来自Facebook联系人和其他网站。我如何在我的详细信息中只显示同一个人的一个联系人。
我在一些博客中读过一些不同的投影,比如
ContactsContract.Contacts.Data.RAW_CONTACT_ID
和不同的URI
RawContacts.CONTENT_URI
任何人都可以建议我两个URI之间的差异。我需要查询ID,姓名,照片,电话号码,电子邮件,已加星标。
由于
答案 0 :(得分:1)
要了解差异,您可以按照此页面操作: http://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert.html
简而言之: 联系人(由CONTACT_ID标识)是虚拟的组合联系人。这是2.0联系人应用程序显示的内容,您可能从两个不同的Google帐户/和/或Facebook帐户中获取信息 给定联系人包含一个或多个“原始联系人”(由RAW_CONTACT_ID标识),它们是来自不同帐户的实际个人记录。
希望这可以解决你的困惑。