5

Estoy trabajando en una copia de seguridad y sincronización de contactos.Aplicación de copia de seguridad y sincronización de contactos

El objetivo es enviar todos los detalles de todos los contactos a un servidor (protocolo personalizado definido) como una copia de seguridad.

Durante el inicio inicial de la aplicación, todos los contactos se pondrán en cola y se enviarán al servidor. Y después de eso, se ejecutará un servicio en segundo plano todo el tiempo que escuchará la nueva actualización de contacto/adición de contacto, y este contacto nuevo/actualizado será enviado al servidor por el servicio en segundo plano.

Estoy usando RawContactsEntity para ir a buscar los registros.

Intenté usar ContentObserver en las tablas RawContacts/Data para recibir una notificación de adición de contacto o cambio de contacto. Pero, AFAIK, el ContentObserver da la notificación (onChange()) de los datos modificados en la tabla como un todo y no la identificación del registro individual.

Ahora mi problema es, ¿cómo obtener las identificaciones exactas de registros modificados/nuevos?

Pensé en crear una tabla de respaldo para compararla con la tabla de contactos nativos y obtener los registros modificados. Pero a medida que aumenta el número de contactos, el rendimiento disminuirá drásticamente y esto también obstaculizará la duración de la batería.

¿Puede sugerirme, la mejor manera de lograr esta operación de copia de seguridad de contactos desde el punto de vista del rendimiento y el uso de la memoria? ¿Hay alguna otra manera para la operación de sincronización de contactos?

Sería muy útil si alguien puede compartir ejemplos que pueden ayudarme en esto.

Respuesta

0

Si los contactos están almacenados dentro de su cuenta (AccountManger), Android marcará la bandera sucia en los contactos brutos. Si no es su cuenta, entonces no puede confiar en la bandera sucia ya que el adaptador de sincronización de cuentas podría haber actualizado el contacto al servidor y restablecer el indicador sucio. Su única opción es volver a cargar los contactos completos (simple y fácil de codificar) o realizar un seguimiento de la columna de la versión en RawContacts y verificar cuál ha cambiado. En realidad, no se recomienda copiar y cargar contactos desde otras cuentas, ya que el adaptador de sincronización correspondiente mantendrá una copia de seguridad de los mismos. Al igual que Google tendrá una copia de los contactos de Google en su servidor.

Cuestiones relacionadas