Я пытаюсь получить адрес электронной почты из ContactsContract, но я получаю только пустую строку! Имя и номер работают нормально, но не адрес электронной почты!Не удается получить адрес электронной почты от ContactsContract
Я смутился и пытался решить это в течение нескольких дней, но я не знаю, что случилось, если я пропустил что-то в коде или что и не знаю, как это решить.
Эта часть приложения имеет список всех имен из ContactsContract. При выборе имени в списке, код должен получить имя, номер и адрес электронной почты из ContactContract.
Я бы рекомендовал некоторую помощь, чтобы иметь возможность продолжить работу! Возможно, есть лучший способ решить это, тогда, пожалуйста, скажите мне, как измениться! Благодаря!
Поскольку сообщение тоста не отображается внутри цикла while, while(cursorEmail.moveToFirst()){....
Я предполагаю, что что-то не так с курсором электронной почты !? Кажется, он пуст !?
public class Activity_3 extends Activity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_3);
listView = (ListView) findViewById(R.id.contactList);
String[] projection = { ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone._ID };
Cursor cursor1 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, null, null, null);
// From column
String[] fromColumn = { ContactsContract.Contacts.DISPLAY_NAME };
// To view
int[] toView = { R.id.contactItem };
startManagingCursor(cursor1);
ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.activity_3, cursor1, fromColumn, toView);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
String[] projection = { ContactsContract.CommonDataKinds.Phone._ID,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
};
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, null, null, null);
cursor.moveToPosition(position);
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String contactNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String pos = Integer.toString(position);
String contactEmailAddress = "?";
//Email
Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=" + contactId, null, null);
while(emails.moveToNext()){
contactEmailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Toast.makeText(Activity_3.this, contactEmailAddress, Toast.LENGTH_SHORT).show();
}
emails.close();
Toast.makeText(Activity_3.this, pos + " " + contactId + " " + contactName + " " + contactNumber + " " + contactEmailAddress, Toast.LENGTH_SHORT).show();
}
});
}
}
Спасибо, это мне очень полезно .. –
Блестяще, спасибо! Эта информация была сложнее найти, чем я думал изначально. –
Большое спасибо за этот код. Это спасло мою жизнь, пытаясь найти что-то точно такое же. – JPerk