電話の連絡先から電子メールのリストを生成しようとしていますが、特に電子メールを取得するのに問題があります。名前と電話番号は取得できますが、メールは取得できません。ArrayList のサイズは、ループの最後で両方とも 0 です。誰かが私が間違っていることを見つけたり、電子メールが電話番号、名前、その他の情報とどのように違うのか教えてくれますか?
ContentResolver cr = getContentResolver();
Cursor emailCur = cr.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
null, null);
ArrayList<String> emails = new ArrayList<String>();
ArrayList<String> emailTypes = new ArrayList<String>();
while (emailCur.moveToNext()) {
// This would allow you get several email addresses
// if the email addresses were stored in an array
String email = emailCur
.getString(emailCur
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
String emailType = emailCur
.getString(emailCur
.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
emails.add(email);
emailTypes.add(emailType);
}
emailCur.close();
Log.i("Emails Count", Integer.toString(emails.size()));
for (int i = 0; i < emails.size(); i++) {
Log.i("Emails " + i, emails.get(i));
}
Log.i("EmailTypes Count", Integer.toString(emailTypes.size()));
for (int i = 0; i < emailTypes.size(); i++) {
Log.i("EmailTypes " + i, emailTypes.get(i));
}