2011-11-25 39 views
14

Lo que quiero es ocultar contactos de la lista de contactos. Así que para lograr esto probé mucho y busqué mucho. Finalmente, he llegado a saber que podemos generar un grupo invisible y podemos asignar contactos a ese grupo para que los contactos sean invisibles.Crear Grupo de Contactos Invisibles en Android

Lo intenté, pero no tuve éxito. Incluso cuando configuro el campo GROUP_VISIBLE de ContactsContact.Group s, no puedo hacer que mi grupo sea invisible.

Esto es lo que he tratado de crear un grupo invisible:

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

    ops.add(ContentProviderOperation 
      .newInsert(ContactsContract.Groups.CONTENT_URI) 
      .withValue(ContactsContract.Groups.GROUP_VISIBLE, 0) 
      .withValue(ContactsContract.Groups.TITLE, "InViGroup").build()); 
    try { 

     getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 

    } catch (Exception e) { 
     Log.e("Error", e.toString()); 
    } 

soy capaz de agregar contactos a este grupo, pero los contactos son visibles en la guía telefónica o la lista de contactos.

Mi objetivo principal es ocultar el contacto de la lista de contactos. ¿Algunas ideas? ¿Cómo puedo hacer que mis contactos seleccionados sean invisibles?

+0

Me gustaría saber esto también. Sospecho que uno de los principales problemas es que GROUP_VISIBLE es un campo read_only. ¿Has encontrado alguna forma alternativa de hacer esto? – Maurycy

+0

¿Por qué querrías hacer esto? ¿Por qué no utilizar una base de datos totalmente separada para las cosas que no desea que aparezcan en las listas de contactos? –

+0

para aprovechar las características de la API de contactos como la agregación. También permite mucho menos código. – Maurycy

Respuesta

6

Maurycy, jugué mucho con esto para hacerlo invisible. Incluso puedo crear un grupo con GROUP_VISIBLE para establecer true y false both. Pero independientemente de lo que establezca, ya sea cierto o falso, los contactos que agregué todavía son visibles para la aplicación de contactos, así que finalmente he creado mi propia base de datos de contactos que se mantiene en mi propia aplicación.

Es más difícil que hacer grupos y contactos invisibles, ya que debe mantener todos y cada uno de los campos y tablas relacionados con la base de datos de la aplicación de contactos. Entonces, si ha encontrado una manera de hacerlo invisible, por favor hágamelo saber.

Aún así, si desea seguridad como que nadie puede acceder o hacerla visible a través del código también, creo que debe crear su propio método de base de datos que he seleccionado como mi última opción.

Cuestiones relacionadas