Sincronización del proveedor del calendario para Android: columnas SYNC_DATA?
Me gustaría sincronizar entre el calendario interno de Android y mi aplicación. Estoy utilizando CalendarContract disponible desde Android API 14 en adelante.
Cualquier cambio del proveedor de contenido "com.android.calendar" llama a onPerformSync (..) de mi adaptador de sincronización. Sin embargo, en este punto, todas las filas de los eventos se establecen DIRTY = 0. Esto significa que la sincronización del calendario de Google debe haber establecido el DIRTY FLAG a cero antes de que mi adaptador de sincronización pueda acceder a ellos.
- Android Studio cómo ejecutar gradle sync manualmente?
- Android Sync Sqlite
- Pausar y reanudar la sincronización de Android Repo
- SyncML con Android y servicio Web de PHP
- Error de sincronización gradle de estudio de android
CalendarContract.EventsColumns.SYNC_DATA1 – Se dice que SYNCDATA10 son columnas del proveedor de contenido para su uso con adaptadores de sincronización. ¿Alguien sabe si hay alguna convención para cuál es el uso de estas columnas? Me he dado cuenta de que en mi dispositivo SYNC_DATA5 almacena la fecha modificada por última vez y SYNC_DATA1 parece almacenar el ID de evento de Google. Por lo tanto, parece que cuando se sincroniza la aplicación Calendario con Google Calendar, estas columnas se modifican.
Sin embargo, si elijo utilizar una de estas columnas para mi adaptador de sincronización, ¿cómo puedo asegurarme de que otra aplicación no utilice las mismas columnas y se anulen entre sí?
Si SYNC_DATA5 SIEMPRE es utilizado por Google Calendar para almacenar la fecha de la última modificación, estaría bien con sólo usarlo para mi lógica de sincronización, solo necesito estar seguro de que se trata de una convención.
- ¿Cómo puedo obtener mi APP_KEY y SECRET_KEY para la sincronización de Dropbox?
- Sincronizar base de datos Android sqlite
- Cómo escuchar el contacto insertado / actualizado / eliminado en la libreta de direcciones
- Android Studio update 0.5.3 - plataforma 'android-19' no encontrado
- Sincronización personalizada que no funciona con la cuenta de Google (com.google) en algunos dispositivos Samsung
- ¿Alguien implementó (o consiguió más información) en Android SyncObserver
- Lista de autorizaciones admitidas para cuentas seleccionadas
- Cómo hacer la sincronización bidireccional entre Android SQLite y SQL Server
Las columnas SYNC_DATA
se pueden utilizar para cualquier valor. No estoy seguro de cómo funciona el calendario de Google, pero están destinados a cosas relacionadas con el adaptador de sincronización, las aplicaciones que no sincronizan el calendario no deben usarlas. Por lo tanto, es seguro utilizar cualquier columna (dado que no la cambia entre las versiones de su aplicación, o debería escribir código de migración), ya que no debería haber otros adaptadores de sincronización trabajando en su calendario.
No puede confiar en las columnas SYNC_DATA
cuando no es un adaptador de sincronización, no las utilice cuando el calendario no es "suyo".
Sin embargo, tengo una fuerte sensación de que no estás sincronizando correctamente. Para sincronizar un calendario, debe utilizar un calendario independiente , no un calendario sincronizado por google o cualquier otra aplicación de terceros. También enumeraré algunos otros pasos involucrados que creo que realizó, pero puede ser útil para otros.
También necesita agregar algunos parámetros a cualquiera de sus solicitudes del sistema para que tenga acceso a los campos del adaptador de sincronización. Además, debe sincronizar su calendario sólo con una implementación de AbstractThreadedSyncAdapter
. Para eso, también necesitas proporcionar un autenticador, si aún no tienes ninguno (para que el usuario pueda habilitar / deshabilitar tu adaptador de sincronización en las preferencias de sincronización de una cuenta). Se puede encontrar una visión general sobre el adaptador de sincronización en esta entrada del blog .
Si no tiene cuentas de servidor y sólo un calendario, debe realizar algunas tareas al iniciar por primera vez:
- Crea una cuenta
- Crear el calendario vinculado a esa cuenta
- Habilitar el adaptador de sincronización
Después de eso, Android se encargará de ejecutar su adaptador de sincronización de vez en cuando, y puede acceder a las columnas SYNC_DATA
sin colisiones (en el calendario que creó) y los indicadores DIRTY
se sirven correctamente.
- UnsatisfiedLinkError: Método nativo no encontrado – Android
- Google Map Api V2 no se muestra Mapa en el dispositivo