lunes, 15 de octubre de 2012

Obtener los contactos del teléfono

En algunas ocasiones es posible que tengamos que facilitar el acceso a cierta información al usuario. Por ejemplo, podemos mostrarle información sobre sus contactos. Para ello podemos usar la siguiente función donde se muestra: nombre, teléfono (si tiene) y el correo:


private void GetContacts(ArrayList<String> contactList) {

Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String information = "";
String contactName = cursor
.getString(cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME_PRIMARY));
String contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
information = contactName;

String hasPhone = cursor
.getString(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (Boolean.parseBoolean(hasPhone)) {
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
while (phones.moveToNext()) {
String phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
information += " " + phoneNumber;
}
phones.close();
}

Cursor emails = getContentResolver().query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = "
+ contactId, null, null);
while (emails.moveToNext()) {
String emailAddress = emails
.getString(emails
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
information += "\n" + emailAddress;
}
emails.close();

contactList.add(information);
}
cursor.close();
}

It works!
Roger Sala

No hay comentarios:

Publicar un comentario