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.
- ¿Cómo acceder al Calendario del usuario en el dispositivo Android?
- Cómo obtener vacaciones nacionales de un país seleccionado
- ¿Cómo usar google calendar api en android?
- Cómo eliminar o editar el evento de G-calendario de mi aplicación Android?
- ¿Cómo agregar un evento en Google Calendar desde la actividad?
—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); }
- Google Calendar API OAuth2 Problemas en Android Honeycomb
- Java.lang.NoClassDefFoundError en el estudio android
- Dependencia apache cliente HTTP en android con API de Google
- API de Google: ¿Diferencia entre la clave del navegador y la clave de Android?
- No se pueden insertar varios eventos en Google Calendar.
- Cómo obtener eventos de google cuenta calendario en android?
- Error de autorización de Google Calendar API
- Obtenga los horarios de inicio y fin de Google Calendar Events con google-java-api-client en Android
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?