I am trying to fetch email and display name from contact list. My code is working fine till api level 4.4 (Kitkat) but not on 5.0 Lollipop or above (6.0 Marshmallow).
Here is my code :
public ArrayList<AddressData> getEmailDetails(){
ArrayList<AddressData> alAdressBookData = new ArrayList<AddressData>();
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
Cursor cur1 = cr.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
new String[]{id}, null);
while (cur1.moveToNext()) {
String name=cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
AddressData obAddressData=new AddressData();
obAddressData.email=email;
obAddressData.name=name;
System.out.println("Contact Emails : "+ email);
System.out.println("Contact name : "+ name);
if(email!=null){
alAdressBookData.add(obAddressData);
}
}
cur1.close();
}
}
return alAdressBookData;
}