0
나는 이메일 주소를 얻기 위해이 방법을 사용 :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();
}
}
(소스 Get only email address from contact list Android)
을 EDITTEXT의 입력에 따라 메일의 목록을 제시하기 위해.
내 구현은 작동하지만 Gmail 애플리케이션에 등록 된 메일에 비해 얻은 메일 주소 목록이 훨씬 적습니다.
왜?
물론 권한이 올바르게 부여됩니다 (READ_CONTACT).
저는 불행히도 kitkat 아래에 터미널이 없지만 이것이 사실이 아니며 목록이 Gmail과 비슷하다는 것을 기억합니다.
현재 Android 21,22,23,24에서 테스트를 마쳤습니다. 그것이 작동하는 경우
이