如何从 android >= 8 的日历中删除事件?

How can I delete event from calendar on android >= 8?

我尝试了很多东西,阅读了很多关于它的 SO 帖子,但似乎没有。 我想删除所有事件。 以下是我如何插入我的日历事件:

                ContentResolver cr = Objects.requireNonNull(myContext.getContentResolver());
            ContentValues values = new ContentValues();
            values.put(CalendarContract.Events.DTSTART, myEventCalendar.getStartEvent());
            values.put(CalendarContract.Events.DTEND, myEventCalendar.getEndEvent());
            values.put(CalendarContract.Events.TITLE, myEventCalendar.getTitle());
            values.put(CalendarContract.Events.DESCRIPTION, myEventCalendar.getDescription());
            values.put(CalendarContract.Events.CALENDAR_ID, 1);
            values.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
            Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);

这个方法很管用,但之后我似乎无法删除事件。 这是我的代码:

    @RequiresApi(api = Build.VERSION_CODES.O)
public void deleteEventCalendar(Context myContext) {
    Uri deleteUri = null;
    Cursor cursor = myContext.getContentResolver().query(CalendarContract.Calendars.CONTENT_URI, null, null, null, null);
    while (cursor.moveToNext()) {
        long id = cursor.getLong(cursor.getColumnIndexOrThrow(CalendarContract.Events._ID));
        deleteUri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, id);
        myContext.getContentResolver().delete(deleteUri, null, null);
    }
    cursor.close();
}

}

我觉得我还差得远,但还是不可能。 请帮助我。

答案从一开始就摆在我面前...

我打电话给 CalendarContract.Calendar 而不是 CalendarContract.Event

我能够在不同的设备上测试它并且一切正常。

public void deleteEventCalendar(Context myContext) {
    Uri deleteUri = null;
    Cursor cursor = myContext.getContentResolver().query(CalendarContract.Events.CONTENT_URI, null, null, null, null);
    while (cursor.moveToNext()) {
        long id = cursor.getLong(cursor.getColumnIndexOrThrow(CalendarContract.Events._ID));
        deleteUri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, id);
        Log.i("id calendar","mon id"+id);
        myContext.getContentResolver().delete(deleteUri, null, null);
    }
    cursor.close();
}