Reputation: 950
I am having the following code to get the email address from contact it get all the emailids from the contact but i want specific contact email id i referred some answer in stackoverflow but not satisfy .
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.update_contact);
update_contacts = (Button) findViewById(R.id.button1);
update_name = (EditText) findViewById(R.id.update_name);
update_phonenumber = (EditText) findViewById(R.id.update_phonenumber);
Bundle extras = getIntent().getExtras();
get_name = extras.getString("contact_name");
update_name.setText(get_name);
ContentResolver cr = getContentResolver();
/* get the contact number for the display name */
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME +" = ?",
new String[]{get_name}, null);
if(pCur.getCount() > 0){
while (pCur.moveToNext()) {
id = pCur.getString(
pCur.getColumnIndex(ContactsContract.Contacts._ID));
String number = pCur.getString(
pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
update_phonenumber.setText(number);
}
}
pCur.close();
/* get the email id for the display name */
Cursor emailCur = cr.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
new String[]{String.valueOf(id)}, null);
if(emailCur.getCount() > 0){
while (emailCur.moveToNext()) {
String email = emailCur.getString(
emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
String emailType = emailCur.getString(
emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
Toast.makeText(getApplicationContext(), ""+email, Toast.LENGTH_LONG).show();
}
}
emailCur.close(); }
Upvotes: 2
Views: 443
Reputation: 4108
You can compare the get_name and name fields like the following way you can get the email id.
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));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Cursor emailCur = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id},null);
while (emailCur.moveToNext()) {
String email = emailCur.getString( emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
if(get_name.equals(name)) {
Log.e("Email id",email);
}
}
emailCur.close();
}
}
Upvotes: 2