我使用以下方法获取所有日历事件:
public Cursor getEventsCursor(Context context) {
long curr = System.currentTimeMillis();
long begin = curr - DateUtils.DAY_IN_MILLIS * 30; // - 30 days
long end = curr + DateUtils.DAY_IN_MILLIS * 30; // + 30 days
Cursor cur = null;
ContentResolver cr = context.getContentResolver();
String selection = Events.VISIBLE + "= ?";
String[] selectionArgs = new String[] {"1"};
String order = Events.DTSTART + " DESC";
Uri.Builder builder = Instances.CONTENT_URI.buildUpon();
ContentUris.appendId(builder, begin);
ContentUris.appendId(builder, end);
return cr.query(builder.build(), EVENT_PROJECTION,
selection, selectionArgs, order);
}
能正常工作,但我会得到所有重复事件的初始时间!
日志
Feeder milestone; eventId: 12; date=2012-12-06 11:00:00 // initial time
Feeder milestone; eventId: 23; date=2012-12-06 11:00:00
Feeder milestone; eventId: 178; date=2012-12-06 11:00:00
Feeder milestone; eventId: 180; date=2012-12-06 11:00:00
如何获取重复事件的实际时间?
示例:如果重复事件喂食器里程碑
是每两周一次的事件,我期望:
Feeder milestone; eventId: 12; date=2014-08-03 11:00:00
Feeder milestone; eventId: 23; date=2014-08-27 11:00:00
Feeder milestone; eventId: 178; date=2014-09-11 11:00:00
Feeder milestone; eventId: 180; date=2014-09-25 11:00:00