I have a code snippet for accessing contacts. When the user clicks the button, the contact list will be opened, and the user can select the person from the contacts, and the person’s email address should be recorded on edittext. I can receive an email from the people that the user selects. But I can not install it in edittext.
static String email = ""; imgbtnaddfromcontacts.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (v == imgbtnaddfromcontacts) { try { Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, 1); } catch (Exception e) { e.printStackTrace(); Log.e("Error in intent : ", e.toString()); } } } }); kimeTxt.setText(email); } @Override public void onActivityResult(int reqCode, int resultCode, Intent data) { super.onActivityResult(reqCode, resultCode, data); try { if (resultCode == Activity.RESULT_OK) { // Get data Uri contactData = data.getData(); // Cursor Cursor cur = managedQuery(contactData, null, null, null, null); ContentResolver contect_resolver = getContentResolver(); // List if (cur.moveToFirst()) { String id = cur .getString(cur .getColumnIndexOrThrow(ContactsContract.Contacts._ID)); Cursor phoneCur = contect_resolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null); Cursor emailCur = contect_resolver.query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[] { id }, null); if (phoneCur.moveToFirst()) { name = phoneCur .getString(phoneCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); no = phoneCur .getString(phoneCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); } while (emailCur.moveToNext()) { // This would allow you get several email addresses // if the email addresses were stored in an array email = emailCur .getString(emailCur .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); if (email != null) { seciliEmail = email; } else { Toast.makeText(EpostaIletActivity.this, "Kişinin eposta hesabı bulunmamaktadır.", Toast.LENGTH_SHORT); Log.w("Error: ", "Kişinin eposta hesabı yok."); } } Log.e("Phone no & name & email :***: ", name + " : " + no + ":" + email); // txt.append(name + " : " + no + "\n"); id = null; name = null; no = null; seciliEmail = "xxx"; phoneCur = null; emailCur.close(); } contect_resolver = null; cur = null; // populateContacts(); } } catch (IllegalArgumentException e) { e.printStackTrace(); Log.e("IllegalArgumentException :: ", e.toString()); } catch (Exception e) { e.printStackTrace(); Log.e("Error :: ", e.toString()); } }
source share