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...
- Obtener contactos en android es muy lento
- Selector de contactos abierto con filtro
- Cambiar el nombre de una cuenta en Android (AccountManager)
- Obtener ID de contacto de la base de datos de contactos de Android no funciona según lo previsto
- Distinto CONTACT_ID de ContactsContract.Data
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?
- Consulta de contacto Android para obtener ACCOUNT_TYPE y ACCOUNT_NAME
- Cómo detectar el número de teléfono predeterminado de un contacto (si está configurado)
- Insertar una nueva foto de contacto para Android
- AutoCompletar TextView con los contactos
- No se puede identificar los contactos de WhatsApp
- Cómo detectar una aplicación de contactos de teléfono de Android apoya Dirección Postal Estructurada?
- Obtener número del selector de contactos
- Android: contacto de búsqueda basado en número de teléfono
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 …
- EditText pierde sus bordes después de un fallo en la sumisión
- ¿Es posible utilizar la herencia en las interfaces AIDL?