Получить конкретную контактную информацию из URI, возвращенного из Intent.ACTION_PICK
Я пишу приложение для Android с типом данных, представляющим человека (в частности, родителя или опекуна ребенка). Я хотел бы иметь возможность "импортировать" соответствующие поля данных из базы данных контактов на устройстве Android. (Это должно быть необязательным; то есть это не будет требованием, чтобы родитель / опекун уже был в базе данных контактов, и база данных контактов не будет обновляться, если они добавят новых родителей / опекунов.)
Пока что я написал код для начала нового намерения выбрать конкретный контакт (используя Intent.ACTION_PICK). Затем я получаю URI, который представляет конкретный контакт в базе данных.
К сожалению, я не знаю, каким будет следующий шаг. Кажется, что это должно быть самой простой вещью в мире, но, очевидно, нет. Я прочитал документацию на веб-сайте разработчиков Android и просмотрел несколько книг по Android. Нет радости
Конкретная информация, которую я хотел бы получить, это:
Имя контакта (первое и последнее отдельно, если это возможно)
Контактный (основной) адрес электронной почты
Номер мобильного телефона контакта
Я полагаю, что это может быть возможно путем запроса с использованием ContentResolver, но я не знаю, как это сделать с URI, возвращенным из намерения. В большей части документации предполагается, что у вас есть ID контакта, а не URI контакта. Кроме того, я понятия не имею, какие поля я могу поместить в проекцию для запроса, предполагая, что это даже правильный способ сделать то, что я хочу.
Вот мой стартовый код:
// In a button's onClick event handler:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
// In onActivityResult:
if (resultCode == RESULT_OK) {
if (requestCode == PICK_CONTACT) {
contactURI = data.getData();
// NOW WHAT?
}
}