代码之家  ›  专栏  ›  技术社区  ›  Arthur

如何删除日历条目?

  •  2
  • Arthur  · 技术社区  · 15 年前

    我正在尝试实现我的第一个android程序。它应该写日历条目(我知道,这不是开始编程和ID的最佳任务)。

    我试过:

    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
    

    什么都没用。我得到一个“不能删除该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);
    

    2 回复  |  直到 15 年前
        1
  •  8
  •   Arthur    14 年前

    好的,有一件事我没有尝试:

    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);
    

    现在我的日历是空的:-)

        2
  •  1
  •   CommonsWare    15 年前

    从用户日历中删除内容的正确方法是使用适当的GDataAPI并将其从Google日历中删除。操纵日历应用程序的内容提供程序(正如您正在尝试的那样)不是公共API的一部分。