Recuperación del grupo de contacto particular

Quiero recuperar los datos de contacto junto con el grupo al que pertenece. Conseguí el código para enumerar todos los grupos del contacto en el teléfono.

Cursor groupC = getContentResolver().query( ContactsContract.Groups.CONTENT_URI, null, null, null, null); while (groupC.moveToNext()) { String groupid = groupC.getString(groupC.getColumnIndex(ContactsContract.Groups._ID)); Log.e("myTag", groupid); String grouptitle = groupC .getString(groupC.getColumnIndex(ContactsContract.Groups.TITLE)); Log.e("myTag", grouptitle); } groupC.close(); 

A continuación, traté de consultar un contacto en particular mediante el uso de su id, pero siempre se muestra There is no such column...

 Cursor groupC = getContentResolver().query( ContactsContract.Groups.CONTENT_URI, null, ContactsContract.Contacts._ID+"= ?", new String[]{id}, null); 

Donde está

 Cursor cur = cr.query( ContactsContract.Contacts.CONTENT_URI, null, null, null, null); id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 

¿Cómo consultar al grupo usando un identificador de contacto particular?

Encontré la respuesta. Debemos pasar el contacto-identificación crudo y el tipo correcto del mime.

  String where = ContactsContract.Data.RAW_CONTACT_ID + "=" + Integer.parseInt(id) + " AND " + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'"; Cursor cursor = ctx .getContentResolver() .query(ContactsContract.Data.CONTENT_URI, null, where, null, null); startManagingCursor(cursor); Log.e("Count is:", ""+ cursor.getCount()); while (cursor.moveToNext()) { groupid = cursor .getString(cursor.getColumnIndex(ContactsContract.Data.DATA1)); Log.e("groupid", groupid); builder.append(groupid); }String where = ContactsContract.Data.RAW_CONTACT_ID + "=" + Integer.parseInt(id) + " AND " + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'"; Cursor cursor = ctx .getContentResolver() .query(ContactsContract.Data.CONTENT_URI, null, where, null, null); startManagingCursor(cursor); Log.e("Count is:", ""+ cursor.getCount()); while (cursor.moveToNext()) { groupid = cursor .getString(cursor.getColumnIndex(ContactsContract.Data.DATA1)); Log.e("groupid", groupid); break; } 

Un contacto puede estar en más de un grupo, aquí retrivr su primer grupo pnly.

Creo que esto puede ser útil para alguien …

  • Buscar contactos en la aplicación Android
  • Referencia incorrecta a la tabla de contactos de la bandeja de entrada de SMS
  • ¿Es posible excluir contactos SIM cuando se utiliza Intent.ACTION_PICK?
  • Intención para contactos con número de teléfono
  • Foto de contacto externa (por ejemplo, facebook) en android
  • Recibir cambios de contacto (agregados, eliminados y cambiados)
  • Adición de un tipo de mime personalizado a los contactos de android
  • Añadir número para contactar en Android 2.0
  • ¿Cómo obtener todos los contactos Sim en Android Progrmmatically?
  • Cambiar la imagen del contacto a una foto grande a través de PHOTO_FILE_ID en Android
  • ¿Es posible leer el historial de costos de llamadas desde el diálogo planteado después de finalizar la llamada de prepago?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.