Получить конкретную контактную информацию из 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?
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос