Строка такого вида чтоб получить список email не работает, хотя во многих статьях ее используют:
Intent intent=new Intent(Intent.ACTION_PICK);
intent.setData(ContactsContract.CommonDataKinds.Email.CONTENT_URI);
startActivityForResult(intent, some_number);
Видимо работала до версии < Android 2.0, так что пришлось чуть по шаманить, вариант получился не лучший так как мы не видим сам mail а видим только контакт.
Если у вас есть вариант как увидеть mail в контакт листе напишите в комментариях.
Код:
//Какой то обработчик нажатия
public boolean onLongClick(View arg0) {
Uri a = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
Intent i=new Intent(Intent.ACTION_PICK, a);
startActivityForResult(i, PICK_REQUEST_MAIL); }
...
//Получаем результат
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if ((requestCode == PICK_REQUEST_MAIL) && (resultCode == RESULT_OK)) {
ContentResolver cr = getContentResolver();
Cursor pCur_id = cr.query(data.getData(), null, null, null, null);
String id = null;
if(pCur_id != null)
while (pCur_id.moveToNext()) {
id = pCur_id.getString(pCur_id.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
}
pCur_id.close();
//Важная строка, по ID контакта находим наш MAIL в запросе.
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID+ "=" + id, null, null);
if(pCur != null)
while (pCur.moveToNext()) {
String mail = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
//Тут заносим наш mail куда нам надо например в EditText
mailEditText.setText(mail);
}
pCur.close();
}
super.onActivityResult(requestCode, resultCode, data);
}
Intent intent=new Intent(Intent.ACTION_PICK);
intent.setData(ContactsContract.CommonDataKinds.Email.CONTENT_URI);
startActivityForResult(intent, some_number);
Видимо работала до версии < Android 2.0, так что пришлось чуть по шаманить, вариант получился не лучший так как мы не видим сам mail а видим только контакт.
Если у вас есть вариант как увидеть mail в контакт листе напишите в комментариях.
Код:
//Какой то обработчик нажатия
public boolean onLongClick(View arg0) {
Uri a = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
Intent i=new Intent(Intent.ACTION_PICK, a);
startActivityForResult(i, PICK_REQUEST_MAIL); }
...
//Получаем результат
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if ((requestCode == PICK_REQUEST_MAIL) && (resultCode == RESULT_OK)) {
ContentResolver cr = getContentResolver();
Cursor pCur_id = cr.query(data.getData(), null, null, null, null);
String id = null;
if(pCur_id != null)
while (pCur_id.moveToNext()) {
id = pCur_id.getString(pCur_id.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
}
pCur_id.close();
//Важная строка, по ID контакта находим наш MAIL в запросе.
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID+ "=" + id, null, null);
if(pCur != null)
while (pCur.moveToNext()) {
String mail = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
//Тут заносим наш mail куда нам надо например в EditText
mailEditText.setText(mail);
}
pCur.close();
}
super.onActivityResult(requestCode, resultCode, data);
}