J'utilise cette méthode pour obtenir des adresses e-mail:Comment récupérer toutes les adresses e-mail enregistrées dans Gmail?
ContentResolver cr = SelectFile.this.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()) {
//to get the contact names
String name=cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
ItemEmailSuggestion item = new ItemEmailSuggestion(email,name,id);
emailsContacts.add(item);
Log.i("CONTACTS",email+" "+name);
}
cur1.close();
}
}
(source de Get only email address from contact list Android)
afin de proposer une liste de courrier selon l'entrée dans un editText.
Ma mise en œuvre fonctionne, mais la liste des adresses mail obtenues est beaucoup moins fournie que celle des mails enregistrés dans l'application Gmail.
Pourquoi?
Bien sûr, les autorisations sont accordées correctement (READ_CONTACT).
Je n'ai malheureusement plus de terminal sous kitkat, mais il me semble me rappeler que ce n'était pas le cas et que la liste était comparable à celle de Gmail.
Actuellement testé sous android 21,22,23,24.
vous remercie à l'avance