Uzyskaj szczegółowe informacje kontaktowe z identyfikatora URI zwróconego przez Intent.ACTION_PICK

Piszę aplikację na Androida, która ma typ danych reprezentujący osobę (w szczególności rodzica lub opiekuna dziecka). Chciałbym móc „importować” odpowiednie pola danych z bazy danych kontaktów na urządzeniu z Androidem. (Powinno to być opcjonalne; tzn. Nie będzie wymogu, aby rodzic / opiekun był już w bazie danych kontaktów, ani baza danych kontaktów nie będzie aktualizowana, jeśli dodają nowych rodziców / opiekunów).

Do tej pory napisałem kod, aby rozpocząć nowy zamiar, aby wybrać konkretny kontakt (używając Intent.ACTION_PICK). Następnie otrzymuję identyfikator URI reprezentujący określony kontakt w bazie danych.

Niestety nie wiem, jaki jest następny krok. Wydaje się, że powinno to być najprostszą rzeczą na świecie, ale najwyraźniej nie. Przeczytałem dokumentację na stronie programisty Androida i przejrzałem więcej niż jedną książkę na Androida. Brak przyjemności.

Szczegółowe informacje, które chciałbym uzyskać, to:

Nazwisko kontaktu (pierwsze i ostatnie oddzielnie, jeśli to możliwe)

Główny adres e-mail kontaktu

Numer telefonu komórkowego kontaktu

Wyobrażam sobie, że powinno to być możliwe poprzez odpytywanie za pomocą ContentResolver, ale nie mam pojęcia, jak to zrobić z URI zwróconym z Intent. Większość dokumentacji zakłada, że ​​masz identyfikator kontaktu, a nie identyfikator URI kontaktu. Nie mam też pojęcia, jakie pola mogę umieścić w projekcji dla zapytania, zakładając, że jest to właściwy sposób na zrobienie tego, co chcę.

Oto mój kod początkowy:

// 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?
    }
}

questionAnswers(3)

yourAnswerToTheQuestion