borrar el evento del calendario en android mediante programación

He buscado mucho en internet y he probado muchos ejemplos. Puedo agregar el acontecimiento con éxito al calendario con mi uso pero no puedo suprimir este acontecimiento programatically. Aquí están las muestras que he intentado que no puedo terminar con un resultado exitoso.

tokens [1] es id de evento.
1}

Uri eventsUri = Uri.parse(getCalendarUriBase()+"events"); Uri eventUri = ContentUris.withAppendedId(eventsUri, Long.parseLong(tokens[1])); getContentResolver().delete(eventUri, null, null); 

2)

  ContentResolver cr = FlightOperationsCancelTicketFee.this.getContentResolver(); Uri EVENTS_URI = Uri.parse("content://com.android.calendar/" + "events"); deleteEvent(cr, EVENTS_URI, 1); private void deleteEvent(ContentResolver resolver, Uri eventsUri, int calendarId) { Cursor cursor; if (android.os.Build.VERSION.SDK_INT <= 7) { cursor = resolver.query(eventsUri, new String[]{ "_id" }, "Calendars_id=" + calendarId, null, null); } else { cursor = resolver.query(eventsUri, new String[]{ "_id" }, "calendar_id=" + calendarId, null, null); } while(cursor.moveToNext()) { long eventId = cursor.getLong(cursor.getColumnIndex("_id")); resolver.delete(ContentUris.withAppendedId(eventsUri, eventId), null, null); } cursor.close(); } 

3)

  ContentResolver cr = getContentResolver(); String calUriString = "content://com.android.calendar/events"; Uri cal=Uri.parse(calUriString); String[] EVENT_PROJECTION=new String[]{"calendar_id","title","dtstart","_id"}; Uri eventsUri = Uri.parse(getCalendarUriBase()+"events"); Uri eventUri =ContentUris.withAppendedId(eventsUri, Long.parseLong(tokens[1])); String reminderUriString = "content://com.android.calendar/reminders"; Uri remUri =Uri.parse(reminderUriString); cr.delete(remUri, "event_id="+Commons.event_id, null); cr.delete(eventUri, null, null); 

4)

  Uri eventsUri = Uri.parse(getCalendarUriBase()+"events"); Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, Long.parseLong(tokens[1])); getContentResolver().delete(eventUri, null, null); 

Ninguno de los anteriores funciona. Necesito ayuda . Gracias .. Editar: Creo que no puedo enviar el contexto adecuado, hay una manera de mantener el contexto a través de las preferencias compartidas? Sin embargo, sólo mantiene los valores String y Int. ¿Hay otra manera de hacer algo como esto?

La mejor documentación sobre el tema está aquí: http://developer.android.com/guide/topics/providers/calendar-provider.html

Pero básicamente lo hace por el libro en (1).

Mi sugerencia es primero cerciorarte de que tienes la identificación derecha, segunda prueba en otro dispositivo etc. También prueba si puedes conseguir el acontecimiento otra vez después de que lo hayas suprimido.

debe agregar eventos al calendario con diferentes _id como calender_id actuar como una clave primaria. Tan si usted quisiera que un registro particular para suprimir apenas diera ese comando de la identificación para suprimir.

Utilice este código, funcionó para mí:

  Uri deleteUri = null; deleteUri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, Long.parseLong(String.valueOf(eventID))); int rows = getContentResolver().delete(deleteUri, null, null); Toast.makeText(this, "Event deleted", Toast.LENGTH_LONG).show(); 
  • JavaScript: Seguimiento de la selección de cambios en Firefox para Android
  • Android equivalente a NSNotificationCenter
  • ¿Por qué no funciona esta simulación de MotionEvent?
  • Insertar varios eventos en el calendario de Android
  • ¿Pueden las vistas de padres y niños obtener el evento de movimiento simultáneamente en Android?
  • Transferir el enfoque táctil a otra vista
  • Cordova Plugin para pasar el keycode de un evento keyUp a la aplicación
  • Android: Cómo invocar programaticamente evento onScroll en ListView
  • Android: intercepte y transmita todos los eventos táctiles
  • Androide ndk multitouch
  • Cómo establecer el evento onClick en un ImageButton?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.