0

我有一个我无法解决的问题。我设法将我的事件插入到我的 android 日历中,但我想让它们重复出现。以生日为例。我希望他们每年重复一次。我有这个代码:

    final ContentResolver cr = ctx.getContentResolver();
    ContentValues cv = new ContentValues();
    cv.put("calendar_id", calIds[0]);
    cv.put("title", title);

    cv.put("rrule", "FREQ=YEARLY");
    cv.put("description", comment );
    Calendar start = Calendar.getInstance();
    start.set(2012, 0, 2, 8, 0, 0);

    Calendar end = Calendar.getInstance();
    end.set(2012, 0, 2, 9, 0, 0);

    long startTime = start.getTimeInMillis();       
    long endTime = end.getTimeInMillis();

    cv.put("dtstart", startTime);
    cv.put("dtend", endTime);
    //Insertion on the events of the calendar
    cr.insert(Uri.parse("content://com.android.calendar/events"), cv);

它插入了我的事件,但它不会重复发生。我的意思是我的活动出现在 2jan2012 但在 2jan2013 没有出现,2014 年也没有出现,依此类推。所以我在手机上打开我的日历并尝试编辑我的事件,我看到我应该在哪里选择它的发生,那里显示“2012 年 1 月 2 日”而不是“1 月 2 日”,因为它应该是自定义的我的手机上的活动。另一方面,如果我尝试从我的手机手动添加一个事件,它工作得很好(我的意思是我可以添加一个每年发生的事件)。我注意到的另一件事是,如果我更改年份,例如我输入 2010 而不是 2012,它会每年插入我的事件,直到我当前的日期。更准确地说,它在 2jan2010 插入了一个事件,另一个用于 2jan2011 和 2jan2012 它停止(今天是 2012 年 1 月 2 日),并且在此日期之后没有更多事件插入此日期。有没有人遇到过这种类型的问题?欢迎任何帮助。谢谢!

4

2 回答 2

0

听起来,您尝试添加的任何事件都不会在当前日期之后再次发生。

使用日历,手动插入具有特定标题(例如“测试”)的每年/每月/每周事件,该事件在当前日期之后重复出现。然后编写一个简单的方法来读取当前日历中的事件。检查标题“测试”并记录该ContentValues事件的内容 - 看看您是否能发现任何差异。

于 2012-01-13T18:49:41.443 回答
0

当它是重复事件时,在 ContentValues 中放置 'duration' 而不是 'dtend'。

参考https://stackoverflow.com/a/13839548/3629966

于 2014-10-20T22:04:37.927 回答