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í.
- ¿Cuál es el rango de HOUR_OF_DAY?
- Calcular el número de semanas en un año determinado
- Cómo mostrar la lista de calendarios instalados en la pantalla de configuración de android
- ¿Cómo leer los eventos de Google Calendar en android?
- Los eventos AllDay de Android comienzan o terminan en el día incorrecto
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.
- Agregar evento semanal al calendario
- "Año 2038 _problema" en Google Calendar API (aplicación de Android)
- Leer y escribir el calendario
- Integración de Android Calendar en Android OS 4
- Cómo pasar la identificación de correo electrónico que se sincronizarán en crear calendario de eventos en android?
- Cómo restar dos objetos de calendario en Android
- Integración de Calendar en la aplicación de Android
- ¿Funcionará AlarmManager si mi aplicación no se está ejecutando?
¿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);
- ¿Cómo referenciar un control de otro durante la inflación?
- Context.getSystemService () es una llamada costosa?