【问题标题】:android read contacts details using ContactsContractandroid 使用 ContactsContract 读取联系人详细信息
【发布时间】:2012-01-02 06:51:19
【问题描述】:

我正在通过以下方式查询联系人

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、姓名、照片、电话号码、电子邮件、加星标。

谢谢

【问题讨论】:

    标签: android


    【解决方案1】:

    要了解差异,您可以关注此页面: http://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert.html

    简而言之: 联系人(由 CONTACT_ID 标识)是一个虚拟的组合联系人。这是 2.0 联系人应用程序显示的内容,您可能会从两个不同的 Google 帐户/和/您的 Facebook 帐户中提取信息。
    给定的联系人包含一个或多个“原始联系人”(由 RAW_CONTACT_ID 标识),它们是来自不同帐户的实际个人记录。

    希望这能消除您的困惑。

    【讨论】:

    • 感谢您的解释。但是我如何查询它并将结果合并到特定 CONTACT_ID 的单个联系人?
    猜你喜欢
    • 2013-09-13
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多