Получение индекса столбца электронной почты при выборе контакта java android - PullRequest
0 голосов
/ 14 апреля 2019

В настоящее время я выбираю контакт из телефонной книги контактов, а затем сохраняю имя со следующим кодом:

int nameColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
String name = cursor.getString(nameColumn)

Мне интересно, есть ли способ получить адрес электронной почты контакта впохожая мода, что-то вроде CommonDataKinds.Phone.EMAIL

1 Ответ

0 голосов
/ 14 апреля 2019

выбор контакта из телефонной книги контактов

под этим подразумевается, что вы используете:

Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT)

чтобы пользователь выбрал контакт из приложения контактов устройства?

Если это так, вместо этого вы можете слегка изменить код средства выбора, чтобы он стал средством сбора электронной почты:

Intent intent = new Intent(Intent.ACTION_PICK, Email.CONTENT_URI);  
startActivityForResult(intent, PICK_EMAIL);

Тогда в вашем onActivityResult:

Uri emailUri = data.getData();
Cursor cursor = getContentResolver().query(emailUri, null, null, null, null);
String email = cursor.getString(cursor.getColumnIndex(Email.DATA)); // get the email itself

DatabaseUtils.dumpCursor(cursor); // dump the cursor so you can see the fields and data you can access
cursor.close();
...