Red de conocimiento informático - Conocimiento informático - ¿Cómo llamar a la libreta de direcciones de Android?

¿Cómo llamar a la libreta de direcciones de Android?

No estoy 100 seguro de qué se supone que debe hacer su código de muestra, pero el siguiente resumen debería ayudarlo a llamar a la función de la libreta de direcciones, seleccionar un contacto y luego devolver el nombre del contacto a su aplicación.

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>

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;

}

}