это моя проблема: я пишу альтернативное приложение контактов, которое предназначено для работы с МНОЖЕСТВОМ разных языков и алфавитов. При запросе имен на моем родном языке, шведском, имена, использующие символы умлаут, сортируются мне нелогичным образом, но логично, чтобы я указывал Unicode:
Должен быть / Шведский стиль: A, B, C, ..., Z, Å, Ä, Ö.
Результат запроса: A, Å, Ä, B, ..., N, O, Ö, P, ...
Я предполагаю, что это будет проблемой на любом языке, который отличается от латинского алфавита. Все тесты, которые я сделал, находятся на эмуляторе. Моя группа разработчиков вносит изменения в структуру, поэтому приветствуются и ответы низкого уровня.
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.PHOTO_ID
};
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'";
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
mCursor = managedQuery(uri, projection, null, null, sortOrder);
Обновление: в данный момент мы исследуем этот трек: Сортировка массива String , TBC ...
Я также добавил это как проблему в Google Code.