2012-01-01 66 views
0

我遇到了一个我无法解决的问题。我设法插入我的事件到我的android日历,但我想让他们重复。以生日为例。我希望他们每年重复一次。我有这样的代码:在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日),在此日期之后,此日期将不再插入事件。 有没有人遇到过这类问题?欢迎任何帮助。谢谢!

+0

看看这个问题:http://stackoverflow.com/questions/28871921/add-weekly-event-to-calendar – Sun 2015-07-01 11:38:25

回答

0

从听起来像,您尝试添加的任何事件不会重复通过当前日期。

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

0

当它是一个循环事件时,在ContentValues中放入'duration'而不是'dtend'。

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

+0

看看这个问题:HTTP:// stackoverflow.com/questions/28871921/add-weekly-event-to-calendar – Sun 2015-07-01 11:40:03