Cómo obtener todos los detalles de un contacto en Android

Dada una identificación de contacto, puedo obtener varios detalles de contacto (como nombre, teléfono, ID de correo electrónico, etc.) haciendo diferentes consultas para cada uno de estos campos.

¿Pero hay un método para obtener todos los detalles asociados con esta identificación de contacto al hacer una única consulta?

Tuve que cambiar un poco el tutorial sobre proveedores de contenido ya que hacía referencia a las clases obsoletas, esto podría ayudar.

import android.provider.ContactsContract.Contacts; import android.database.Cursor; // Form an array specifying which columns to return, you can add more. String[] projection = new String[] { ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone ContactsContract.CommonDataKinds.Email }; Uri contacts = ContactsContract.Contacts.CONTENT_LOOKUP_URI; // id of the Contact to return. long id = 3; // Make the query. Cursor managedCursor = managedQuery(contacts, projection, // Which columns to return null, // Which rows to return (all rows) // Selection arguments (with a given ID) ContactsContract.Contacts._ID = "id", // Put the results in ascending order by name ContactsContract.Contacts.DISPLAY_NAME + " ASC");