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.
- Api de Google Calendar para Android
- Obtenga los horarios de inicio y fin de Google Calendar Events con google-java-api-client en Android
- Dependencia apache cliente HTTP en android con API de Google
- Autenticación con la API de Google mediante AccountManager
- Java.lang.NoClassDefFoundError en el estudio android
—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); }
- ¿Cómo puedo averiguar el resultado de mi intención de calendario?
- Los eventos AllDay de Android comienzan o terminan en el día incorrecto
- Calendario de Android: cómo escribir el adaptador de sincronización para el calendario INSERT
- Editar / eliminar eventos de Google Calendar y obtener el ID de evento
- Añadir evento de calendario en la aplicación para Android
- Calendario de Android Las fechas de los eventos de todo el día están desactivadas en un día para GMT + x Áreas
- Android: ¿Cómo interactuar con Google Calendar?
- ¿Cómo agregar un evento en Google Calendar desde la actividad?
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);
- Android: ¿Cómo trabajar con CoordinatorLayout y barra de navegación translúcida?
- Tema de luz para AlertDialog?