Вы можете получить типы, обратившись к этому 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);
вы можете дать подробную информацию о том, что вы имеете в виду именно? и пример? –
Я знаю, что я могу запросить таблицу данных, чтобы получить все структурированные имена, но мне нужно запросить таблицу контактов и присоединиться к данным, чтобы получить все структурированные имена. –
Таблица данных уже является объединением всех основных контактных таблиц, какая точная информация вы хотите, чтобы требовать этого соединения? http://developer.android.com/reference/android/provider/ContactsContract.DataColumnsWithJoins.html – iago