以下のコードを使用するたびに、連絡先リストにある既存の連絡先のメールを取得したいのですが、連絡先の正確なメールを取得できませんでしたが、ランダムなメールを取得できませんでした。このコードを修正するのを手伝ってください。とても感謝しています。
public void fetchingContacts(Context context) {
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
ContentResolver cr = context.getContentResolver();
Cursor crsr = cr.query(uri, null, null, null, null);
crsr.moveToFirst();
if (crsr.getCount() > 0) {
while (crsr.moveToNext()) {
ID = crsr
.getString(crsr
.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));
id = crsr.getString(crsr.getColumnIndex(BaseColumns._ID));
NAME = crsr
.getString(crsr
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
NUMBER = crsr
.getString(crsr
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
arylist_contact_id.add(ID);
arylist_all_number.add(NUMBER);
arylist_all_names.add(NAME);
// ////////////
Cursor emailCur = cr.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Email.CONTACT_ID
+ " = " + id, null, null);
while (emailCur.moveToNext()) {
email = emailCur
.getString(emailCur
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.v("fetchingEMAIL --- ", email);
}
emailCur.close();
Log.v("IN do while :: name and number ", ID + " , id :" + id
+ " " + NAME + " : " + NUMBER + " : " + email);
}
}
crsr.close();
}