Acceder a los contactos del Móvil

publicado por: Anonymous

estoy realizando una app que accede a los contactos del teléfono móvil y los muestra, pero quiero mostrarlos organizados por tipo, ya sea Persona, Trabajo, Casa, Fax laboral, etc.

de esta forma los obtengo todos y funciona a la perfección pero el problema esta que no he encontrado la forma de obtenerlos por los tipos anteriormente mencionados.

Aquí les dejo el código de lo que he realizado, Muchas Gracias

TextView contactos_home = (TextView) findViewById(R.id.contactos_home);

    Cursor cursor = getContentResolver().query( ContactsContract.Data.CONTENT_URI, new String[] {ContactsContract.Data.DISPLAY_NAME}, null, null, null);
    while (cursor.moveToNext()){
        String contactos = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
        contactos_home.append(contactos);
        contactos_home.append("n");
    }

solución

Respondiendo mi pregunta.

String [] datosMostrar = new String[] {ContactsContract.Data.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.TYPE};
String seleccionClause = ContactsContract.CommonDataKinds.Phone.TYPE + "='2' AND " + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "' AND " + ContactsContract.CommonDataKinds.Phone.NUMBER + " IS NOT NULL";
String orden = ContactsContract.Data.DISPLAY_NAME + " ASC";

    Cursor cursor = getContentResolver().query(
            ContactsContract.Data.CONTENT_URI,
            datosMostrar,
            seleccionClause,
            null,
            orden);
    while (cursor.moveToNext()){
        contactos_home.append(" Tipo: " +cursor.getString(2));
        contactos_home.append("n");
    }

Aquí les dejo la tabla con la constante de los principales tipos de contactos

TYPE_CUSTOM -- Constant Value: 0 (0x00000000)
TYPE_HOME   -- Constant Value: 1 (0x00000001)
TYPE_MOBILE -- Constant Value: 2 (0x00000002)
TYPE_WORK   -- Constant Value: 3 (0x00000003)
TYPE_FAX_WORK -- Constant Value: 4 (0x00000004)
TYPE_FAX_HOME  --Constant Value: 5 (0x00000005)

Para obtener un tipo especifico solo tiene que cambiar la compraración en la variable (seleccionClause) (ContactsContract.CommonDataKinds.Phone.TYPE + “=’2‘)

Respondido por: Anonymous

Leave a Reply

Your email address will not be published.