¿Cómo llamar a la libreta de direcciones de Android?
Este proceso consta de tres pasos:
1) Permisos
Añadir permisos para leer datos de contacto en el manifiesto de la aplicación
lt;uses -permission android:name="android.permission.READ_CONTACTS"/gt;
2) Llama al selector de contactos
En tu actividad, crea un Intent, usado para solicitar al sistema que encontrar actividades que puedan realizar la operación PICK emitida desde el elemento URI de contacto,
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI
The Intent (y); el número entero del código de solicitud, en este caso PICK_CONTACT) se pasará al llamar a startActivityForResult. Esto hará que Android inicie una actividad que se ha ordenado para admitir ACTION_PICK en People.CONTENT_URI y luego regrese a esa actividad cuando se presione el botón de selección (o cancelar).
startActivityForResult( intent, PICK_CONTACT);
3) Aún en su actividad, sobrecargue el método onActivityResul para escuchar las llamadas de la actividad "Seleccionar contacto" iniciada en la devolución de llamada del paso 2.
Debe comprobar que el código de solicitud en los comentarios coincida con sus expectativas y que el código de resultado sea RESULT_OK.
Puedes obtener el URI del contacto seleccionado llamando a getData() en el parámetro dataIntent. Para obtener el nombre del contacto seleccionado, necesitas crear una nueva consulta con el URI devuelto. cursor y extraiga los parámetros.
@Override
public void onActivityResult(int reqCode, int resultCode, datos de intención) {
super.onActivityResult(reqCode, resultCode, datos); p>
p>
cambiar (reqCode) {
caso (PICK_CONTACT):
if (resultCode == Actividad.RESULT_OK) {
Uri contactData = datos .getData();
Cursor c = wantedQuery(contactData, nulo, nulo, nulo, nulo
if (c.moveToFirst()) {
Nombre de cadena = c. getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}
}
break;
}
}