2011-04-20 12 views
9

¿Hay alguna intención de transmisión estándar que pueda registrar un BroadcastReceiver para que se active cada vez que se agrega o cambia un contacto? He estado buscando en los documentos desde hace un tiempo pero no he encontrado nada. Tal vez está escondido en algún lugar profundo y uno de ustedes sabe dónde.Transmisión por contacto agregar/cambiar?

+0

echa un vistazo a mi respuesta http://stackoverflow.com/a/29031605/1881527 puede ayudarle ... :) –

Respuesta

6

Aquí voy respondiendo mi propia pregunta (si alguien tiene una mejor respuesta, no seas tímido).

No se emite cuando se agrega o cambia un contacto. Sin embargo, cuando busca sus contactos en la tabla RawContacts, tiene una columna DIRTY que es 1 si el contacto fue cambiado desde la última sincronización, que es más o menos lo que estaba buscando.

+2

¿Está seguro de que esto es imposible? Quería que se me notificara que se ha agregado un contacto, ¿qué estás haciendo? ¿Cuándo estás revisando para ver si algo está sucio? –

+2

Cada vez que se inicia el servicio de sincronización. El SO * podría * iniciar su servicio automáticamente después de agregar un contacto, pero eso no está garantizado. Supongo que ** podrías ** registrar un observador de contenido (ver 'ContentResolver.registerContentObserver'), pero creo que eso requeriría que ejecutaras un 'Servicio' en todo momento cuando el dispositivo está en funcionamiento (por favor, deténlo cuando el dispositivo Va a dormir). – Felix

+0

@Felix No entiendo una cosa, supongamos que actualizo/eliminé un contacto de la aplicación nativa y se establece el indicador correspondiente, ahora cómo puedo estar seguro de que cuando se ejecute mi adaptador de sincronización, el adaptador de sincronización de Google no haya restablecido los indicadores ¿etc.? Sé un poco acerca de los proveedores de contenido y los adaptadores de sincronización, pero no puedo resolver esto. Por favor ayuda! –