【问题标题】:retrieve contacts Given_name, family_name, prefix and suffix from Android Contacts从 Android 联系人中检索联系人 Given_name、family_name、前缀和后缀
【发布时间】:2014-11-10 06:09:40
【问题描述】:

有没有办法检索联系人 Given_name family_name, prefix 和 suffix ?对所有联系人使用一个查询。

我发现了很多建议查询表 ContactsContract.Data.CONTENT_URI 的解决方案,但它们指定了要检索信息的联系人的 ID。 我想在表 Contacts 和 Data 之间创建一个连接来检索所有联系人,但需要额外的信息。

【问题讨论】:

    标签: android android-contacts contactscontract


    【解决方案1】:

    您可以通过查询此结构化名称内容 URI 来获取类型。

    http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.StructuredName.html

    它具有您需要的所有属性,只需将选择保留为空,您将获得所有联系人的结构化姓名数据。

    使用此代码查询联系人姓名、中间名、姓氏和前缀

                Uri nameUri = ContactsContract.Data.CONTENT_URI;
            String selection = ContactsContract.Data.MIMETYPE + "='" 
                        + ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE + "'";
    
            Cursor cursor = getContentResolver().query(nameUri, new String[]{
                    ContactsContract.CommonDataKinds.StructuredName._ID,
                    ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
                    ContactsContract.CommonDataKinds.StructuredName.PREFIX,
                    ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,
                    ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME,
    
                    }, selection, null, ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME);
    

    【讨论】:

    • 你能详细说明你的意思吗?和一个例子?
    • 我知道我可以查询数据表以获取所有结构化名称,但我需要查询联系人表并加入数据以获取所有结构化名称。
    • Data 表已经是所有主要联系人表的联接,您需要什么确切信息来要求此联接? developer.android.com/reference/android/provider/…
    • 如何进行查询以检索所有包含名字、姓氏和前缀的联系人?
    • 这会返回 Data 内而不是 Contacts 内的所有元素的列表,这会导致返回实际上不是联系人的额外行,这就是我试图避免的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多