如何删除日历项?(How to delete a calendar entry?)

2019-08-16 19:30发布

我想实现我的第一款Android程序。 它应该写日历项(我知道,不是最好的任务开始编程的Andorid)。

我试过了:

Uri CALENDAR_URI = Uri.parse("content://calendar/events");
ContentResolver cr = getContentResolver();
cr.delete(CALENDAR_URI, null, null); // Delete all
cr.delete(CALENDAR_URI, "calendar_id=1", null); // Delete all in default calendar
cr.delete(CALENDAR_URI, "_id=1", null); // Delete specific entry

毫无效果。 我allays得到一个“无法删除URL”。

插入一个日历项很简单:

ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", this.title);
values.put("allDay", this.allDay);
values.put("dtstart", this.dtstart.toMillis(false));
values.put("dtend", this.dtend.toMillis(false));
values.put("description", this.description);
values.put("eventLocation", this.eventLocation);
values.put("visibility", this.visibility);
values.put("hasAlarm", this.hasAlarm);

cr.insert(CALENDAR_URI, values);

根据我的insert方法访问日历工作。

谢谢,亚瑟!

Answer 1:

OK,有一件事我没有尝试:

Uri CALENDAR_URI = Uri.parse("content://calendar/events");
int id = 1; // calendar entry ID
Uri uri = ContentUris.withAppendedId(CALENDAR_URI, id);
cr.delete(uri, null, null);

这是我错过了什么:

Uri uri = ContentUris.withAppendedId(CALENDAR_URI, id);

应导致内容://日历/事件/ 1

现在我的日历是空:-)



Answer 2:

删除的事情了用户的日历的正确方法是使用适当的GData的API,并从他们的谷歌日历中删除。 操作日历应用程序的内容提供商 - 因为你正在试图做的 - 是不是公共API的一部分。



文章来源: How to delete a calendar entry?