löschen Ereignis aus dem Kalender in android programmgesteuert
Suchte ich aus dem internet ein viel und versucht, viele Beispiele . Kann ich erfolgreich Termin hinzufügen, um den Kalender über meine Anwendung, aber ich kann nicht löschen, dieses Ereignis programmgesteuert. Hier sind die Beispiele, die ich versucht habe, die kann ich nicht am Ende ein erfolgreiches Ergebnis .
Token[1] ist die Ereignis-id.
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);
Keines der obigen funktioniert . Ich brauche Hilfe . Danke ..
Edit : ich denke ich kann nicht senden Sie die richtigen Kontext ist es eine Möglichkeit, um Rahmen über gemeinsame Vorlieben ? Jedoch , es verfolgt nur die String-und Int-Werte . Gibt es eine andere Möglichkeit, so etwas zu tun ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie diesen code,bei mir hat Es geklappt:
Die beste Dokumentation zu dem Thema ist hier: http://developer.android.com/guide/topics/providers/calendar-provider.html
Aber Ihr im Grunde tun es durch das Buch in (1).
Mein Vorschlag ist, stellen Sie zunächst sicher, dass Sie die richtige id, zweite test auf einem anderen Gerät etc. Testen Sie auch, wenn Sie das Ereignis erneut, nachdem Sie Sie gelöscht haben.
Sollten Sie hinzufügen von Ereignissen zum Kalender mit verschiedenen _id als calander_id handeln als Primärschlüssel.
Wenn Sie So wollen, einen bestimmten Datensatz zu löschen, nur diese id zu löschen-Befehl.