Использование CursorLoader для получения писем вызывает дублирование писем
Я пытаюсь получить адреса электронной почты использует контакты. Для этого я использую Cursor Loader. Есть одна проблема, я также получаю дубликаты идентификаторов электронной почты. Как удалить дубликаты электронной почты. Должен ли я использовать необработанный запрос «SELECT DISTINCT» вместо использования CursorLoader или есть какое-то другое решение?
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Email.DATA};
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP +"='1' AND " + Email.DATA +" IS NOT NULL AND " + Email.DATA +" != \"\" " ;
//showing only visible contacts
String[] selectionArgs = null;
return new CursorLoader(this, ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection, selection, selectionArgs, sortOrder);
}