Получение информации о пользователе из списка контактов Android

Мне нужно получить имя, адрес электронной почты и номер телефона из каждого контакта моего списка контактов.

Проблема в том, что я могу получить имя и номер телефона, но не адрес электронной почты. Я получаю номер телефона вместо электронной почты.

Вот мой код:

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,null, null); while (phones.moveToNext()) { String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); String email = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS)); ContactItem objContact = new ContactItem(); objContact.setName(name); objContact.setPhoneNo(phoneNumber); objContact.setEmail(email); list.add(objContact); } phones.close(); 

  Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); while (cursor.moveToNext()) { String contactId = cursor.getString(cursor.getColumnIndex( ContactsContract.Contacts._ID)); //May want to get basic info here like name, phone //Example: //Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null); //while (phones.moveToNext()) { // String phoneNumber = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER)); // Log.i("phone", phoneNumber); //} //phones.close(); 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)); Log.i("emails", emailAddress); } emails.close(); } cursor.close(); 

Источник и ссылка: как читать контакты на Android 2.0

Public void onActivityResult (int reqCode, int resultCode, Intent data) {super.onActivityResult (reqCode, resultCode, data);

  switch (reqCode) { case (PICK_CONTACT): if (resultCode == Activity.RESULT_OK) { String phoneNumber = null; String name = null; String emailAddress = null; Uri contactData = data.getData(); Cursor c = managedQuery(contactData, null, null, null, null); if (c.moveToFirst()) { Cursor cursor = null; cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); // May want to get basic info here like name, phone // Example: Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); while (phones.moveToNext()) { phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); Log.i("phone", phoneNumber); } phones.close(); Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, null, null); while (emails.moveToNext()) { emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); Log.i("emails", emailAddress); } emails.close(); } cursor.close(); Log.i(DEBUG_TAG, "Got a contact result: " + name + emailAddress + "Phone Number is :- " + phoneNumber); Toast.makeText(getApplicationContext(), name, Toast.LENGTH_SHORT).show(); } } } }