Evento de calendario guardado localmente en el teléfono, pero no se puede sincronizar con Google Calendar.

Intento agregar un calendario con el siguiente código. El evento creado puede ser leído por aplicaciones de calendario en mi teléfono, pero solo sincronizado con Google Calendar en línea. ¿Puede alguien darme algunos golpes para solucionar el problema?

Aquí hay algunas observaciones 1. El código se ejecutó en mi teléfono real (Galaxy Nexus 4.1.1) 2. Todos los demás eventos del calendario pueden sincronizarse con Google Calendar, solo el programa agregado no puede sincronizarse.

—actualizar—

Cuando cambio el código de seguimiento

values.put(CalendarContract.Events.SYNC_EVENTS,1); values.put(CalendarContract.Events.VISIBLE, 1); 

– Recibo el error

 java.lang.IllegalArgumentException: Only the provider may write to sync_events 

  public void addEvent() { long startMillis = 0; long endMillis = 0; Log.v("LOG", "entered addEvent"); //Calendar beginTime = Calendar.getInstance(); //beginTime.set(2012, 8, 11, 22, 0); //startMillis = beginTime.getTimeInMillis(); startMillis = System.currentTimeMillis() + (3600 * 1000)*4; //Calendar endTime = Calendar.getInstance(); //endTime.set(2012, 8, 11, 23, 0); //endMillis = endTime.getTimeInMillis(); endMillis = System.currentTimeMillis() + (3600 * 1000)*5; ContentResolver cr = getContentResolver(); ContentValues values = new ContentValues(); values.put(CalendarContract.Events.DTSTART, startMillis); values.put(CalendarContract.Events.DTEND, endMillis); values.put(CalendarContract.Events.TITLE, "Dog"); values.put(CalendarContract.Events.DESCRIPTION, "DogInDESCRIPTION"); values.put(CalendarContract.Events.CALENDAR_ID, 1); values.put(CalendarContract.Events.EVENT_TIMEZONE, "eventTimezone"); values.put(CalendarContract.Events.SYNC_EVENTS,0); cr.insert(CalendarContract.Events.CONTENT_URI, values); } 

No debe establecer CalendarContract.Events.SYNC_EVENTS en CalendarContract.Events.CONTENT_URI .

Si el calendario ya está configurado como visible y sincronizado en su dispositivo, sólo puede agregar un evento y se sincronizará.

Si necesita activar la sincronización desde la aplicación, puede establecer CalendarContract.Events.SYNC_EVENTS en CalendarContract.Calendars.CONTENT_URI .

Por ejemplo ( calId es el id del calendario que desea actualizar para ser visible y sincronizar).

 ContentResolver cr = context.getContentResolver(); ContentValues values = new ContentValues(); values.put(CalendarContract.Calendars.SYNC_EVENTS, 1); values.put(CalendarContract.Calendars.VISIBLE, 1); cr.update(ContentUris.withAppendedId(Calendars.CONTENT_URI, calId), values, null, null); 
  • No se puede agregar un evento al calendario en android
  • Google Calendar API OAuth2 Problemas en Android Honeycomb
  • API de calendario de Android insertar evento recurrente
  • Evento de sincronización agregado mediante programación con google calendar en android
  • Android Formato de fecha con zona horaria
  • Buscando el código fuente de los nuevos Widgets del selector de tiempo y fecha de Google Calendar
  • ¿Cómo leer los eventos de Google Calendar en android?
  • Google OAuth2 - token de acceso y token de actualización -> invalid_grant / Code ya se redimió
  • Cómo adjuntar datos privados al evento de calendario android
  • ¿Cómo puedo ayudar a un usuario a suscribirse a un calendario externo al calendario de Google en un dispositivo Android?
  • Cómo obtener eventos de google cuenta calendario en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.