Retrieving user information from an Android contact list

I need to get a name, email address and phone number from each contact in my contact list.

The problem is that I can get the name and phone number, but not the email address. I get a phone number instead of an email.

Here is my code:

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,null, null); while (phones.moveToNext()) { String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); String email = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS)); ContactItem objContact = new ContactItem(); objContact.setName(name); objContact.setPhoneNo(phoneNumber); objContact.setEmail(email); list.add(objContact); } phones.close(); 
+4
source share
2 answers
  Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); while (cursor.moveToNext()) { String contactId = cursor.getString(cursor.getColumnIndex( ContactsContract.Contacts._ID)); //May want to get basic info here like name, phone //Example: //Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null); //while (phones.moveToNext()) { // String phoneNumber = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER)); // Log.i("phone", phoneNumber); //} //phones.close(); Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, null, null); while (emails.moveToNext()) { String emailAddress = emails.getString( emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); Log.i("emails", emailAddress); } emails.close(); } cursor.close(); 

Source and link: How to read contacts on Android 2.0

+4
source

public void onActivityResult (int reqCode, int resultCode, Intent data) {super.onActivityResult (reqCode, resultCode, data);

  switch (reqCode) { case (PICK_CONTACT): if (resultCode == Activity.RESULT_OK) { String phoneNumber = null; String name = null; String emailAddress = null; Uri contactData = data.getData(); Cursor c = managedQuery(contactData, null, null, null, null); if (c.moveToFirst()) { Cursor cursor = null; cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); // May want to get basic info here like name, phone // Example: Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); while (phones.moveToNext()) { phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); Log.i("phone", phoneNumber); } phones.close(); Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, null, null); while (emails.moveToNext()) { emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); Log.i("emails", emailAddress); } emails.close(); } cursor.close(); Log.i(DEBUG_TAG, "Got a contact result: " + name + emailAddress + "Phone Number is :- " + phoneNumber); Toast.makeText(getApplicationContext(), name, Toast.LENGTH_SHORT).show(); } } } } 
0
source

Source: https://habr.com/ru/post/1489233/


All Articles