从Android联系人中检索联系人Given_name,family_name,prefix和suffix

时间:2014-11-10 06:09:41

标签: android android-contacts contactscontract

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

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

1 个答案:

答案 0 :(得分:0)

您可以通过查询此结构化名称内容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);