I verwende diese Methode E-Mail-Adressen zu erhalten:Wie alle registrierten E-Mail-Adressen in Google Mail abrufen?
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();
}
}
(Quelle Get only email address from contact list Android)
, um eine Liste von E-Mail nach dem Eingang in einem editText vorzuschlagen.
Meine Implementierung funktioniert, aber die Liste der erhaltenen E-Mail-Adressen ist im Vergleich zu den in der Gmail-Anwendung registrierten E-Mails deutlich geringer.
Warum?
Natürlich werden die Berechtigungen korrekt gewährt (READ_CONTACT).
Ich habe leider kein Endgerät mehr unter kitkat, aber es scheint sich zu erinnern, dass dies nicht der Fall war und dass die Liste vergleichbar mit der von Gmail war.
Derzeit getestet unter Android 21,22,23,24.
danken Sie im Voraus