有没有办法检索联系人Given_name family_name,prefix和suffix?对所有联系人使用一个查询。
我发现了很多建议查询表ContactsContract.Data.CONTENT_URI的解决方案,但是它们指定了要为其检索信息的联系人的ID。 我想创建表联系人和数据之间的联接来检索所有联系人,但需要额外的信息。
答案 0 :(得分:0)
您可以通过查询此结构化名称内容URI来获取类型。
它具有您需要的所有属性,只需将选择保留为空,您将拥有所有联系人的结构化名称数据。
使用此代码查询联系人姓名,中间名,姓氏和前缀
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);