Проблема с получением писем от контактов в Android

Я извлекаю все контакты своего телефона и показываю их в списке. Все остальные необходимые данные отображаются правильно, но у меня возникла проблема с получением адреса электронной почты. У меня есть много контактов, с которыми связан адрес электронной почты, но он не является адресом электронной почты для каких-либо контактов. Я сопоставил свой запрос по электронной почте с другими вопросами SO, и у меня такой же запрос, как и у них. Я что-то упускаю?

Вот мой запрос

if(dataCursor.getString(dataCursor.getColumnIndex("mimetype")).equals(ContactsContract.CommonDataKinds.Email.DATA ) ) {
                            switch(dataCursor.getInt(dataCursor.getColumnIndex("data2"))){
                                case ContactsContract.CommonDataKinds.Email.TYPE_HOME :
                                    homeEmail = dataCursor.getString(dataCursor.getColumnIndex("data1"));
                                    break;
                                case ContactsContract.CommonDataKinds.Email.TYPE_WORK :
                                    workEmail = dataCursor.getString(dataCursor.getColumnIndex("data1"));
                                    break;
                            }
                        }

Cursor dataCursor = getContentResolver().query(dataUri, null,
                        ContactsContract.Data.CONTACT_ID + "=" + contactId,
                        null, null);

person Vivek Mishra    schedule 17.02.2016    source источник


Ответы (1)


Вышеприведенный запрос, который я разместил, не работает. Я нашел другой запрос, который работает для меня.

Cursor emails = getContentResolver().query(
                        ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                        null,
                        ContactsContract.CommonDataKinds.Email.CONTACT_ID
                                + " = " + contactId, null, null);
                while(emails.moveToNext()) {
                    String emailAddress = emails
                            .getString(emails
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                }emails.close();
person Vivek Mishra    schedule 17.02.2016