No se muestran los eventos del calendario de Android

Hola Tengo el código siguiente para agregar eventos en mi calendario:

public String addCalendarEntry(CalendarDTO calendar) { ContentValues event = new ContentValues(); ContentResolver cr = getContentResolver(); long startMillis = calendar.getStartDate().getTimeInMillis(); long endMillis = calendar.getEndDate().getTimeInMillis(); String timeZone = TimeZone.getDefault().getID(); event.put(CalendarContract.Events.CALENDAR_ID, calendar.getId()); event.put(CalendarContract.Events.TITLE, calendar.getTitle()); event.put(CalendarContract.Events.DESCRIPTION, calendar.getDescription()); event.put(CalendarContract.Events.EVENT_LOCATION, calendar.getLocation()); event.put(CalendarContract.Events.DTSTART, startMillis); event.put(CalendarContract.Events.DTEND, endMillis); event.put(CalendarContract.Events.ALL_DAY, Boolean.getBoolean(String.valueOf(calendar.isAllDay()))); // 0 for false, 1 for true event.put(CalendarContract.Events.HAS_ALARM, 1); // 0 for false, 1 for true event.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone); Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, event); return uri.getLastPathSegment(); } 

Este código funcionaba bien hasta el otro día, y de repente no agrega más eventos a mi calendario. No es un error tampoco, así que estoy en pérdida aquí.

CalendarDTO es sólo una clase de transporte de datos como tal:

 public class CalendarDTO { int id; String title; String description; String location; Calendar startDate; Calendar endDate; boolean isAllDay; // getters and setters removed for brevity } 

Cualquier pista muy apreciada.

¿Comprueba que hay un calendario con calendar.getId() ?

Y de los documentos: http://developer.android.com/reference/android/provider/CalendarContract.Events.html

Escribir en eventos Hay más restricciones en todas las actualizaciones e inserciones en la tabla Eventos:

Si allDay se establece en 1 eventTimezone debe ser TIMEZONE_UTC y el tiempo debe corresponder a un límite de medianoche.

Pruebe con algo como esto:

 event.put(CalendarContract.Events.CALENDAR_ID, calendar.getId()); event.put(CalendarContract.Events.TITLE, calendar.getTitle()); event.put(CalendarContract.Events.DESCRIPTION, calendar.getDescription()); event.put(CalendarContract.Events.EVENT_LOCATION, calendar.getLocation()); if(calendar.isAllDay){ Calendar start=calendar.getStartDate(); start.set(Calendar.HOUR_OF_DAY, 0); start.set(Calendar.MINUTE, 0); start.set(Calendar.SECOND, 0); start.set(Calendar.MILLISECOND, 0); Calendar end=start; end.add(Calendar.DAY_OF_MONTH,1); event.put(CalendarContract.Events.DTSTART, start.getTimeInMillis()); event.put(CalendarContract.Events.DTEND, end.getTimeInMillis()); event.put(CalendarContract.Events.EVENT_TIMEZONE, Time.TIMEZONE_UTC); }else{ event.put(CalendarContract.Events.DTSTART, startMillis); event.put(CalendarContract.Events.DTEND, endMillis); event.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone); } event.put(CalendarContract.Events.HAS_ALARM, 1); event.put(CalendarContract.Events.ALL_DAY, calendar.isAllDay()?1:0); 
  • No se puede recibir la transmisión android.intent.action.EVENT_REMINDER
  • ¿Cómo agregar 7 días a la fecha actual sin pasar por los días disponibles de un mes?
  • Ical parser android
  • La adición de un día a un calendario en Android falla el 31
  • ¿Cómo puedo agregar un nuevo calendario de teléfono a Android?
  • Apertura lenta de MaterialCalendarView
  • No se puede encontrar la clase de Android CalendarView
  • Cómo agregar por programación suscripciones de calendario en Android?
  • Alarma se dispara si el tiempo es eariler que el tiempo del sistema actual en android
  • ¿Cómo usar intenciones para ver datos de calendario?
  • Actividad de calendario para ver semana y vista de día
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.