【问题标题】:Android, calendar, adding RRULE to event never worksAndroid,日历,将 RRULE 添加到事件中永远不起作用
【发布时间】:2014-10-24 14:52:55
【问题描述】:

我正在关注rfc2445 规范并向 cal 插入一个循环事件,但总是得到无效的循环错误。

Invalid recurrence rule: RRULE:FREQ=WEEKLY;UNTIL=20141007T000000Z;WKST=SU;BYDAY=TU,TH

这是我的代码,请注意我返回上面的常量 rrule 字符串以确保我不违反规范,我只是将年份从 1997 年更改为 2014 年。知道为什么它不起作用吗?谢谢

ContentResolver cr = getContentResolver();
        ContentValues values = new ContentValues();
        values.put(CalendarContract.Events.DTSTART, model.getStartTime().toMillis(false));
        values.put(CalendarContract.Events.DTEND, model.getEndTime().toMillis(false));
        values.put(CalendarContract.Events.EVENT_TIMEZONE, timezone);
        values.put(CalendarContract.Events.TITLE, model.getTitle());
        values.put(CalendarContract.Events.EVENT_LOCATION, model.getLocation().getName());
        values.put(CalendarContract.Events.DESCRIPTION, model.getDescription());
        values.put(CalendarContract.Events.CALENDAR_ID, calId);
        String recurString ="RRULE:FREQ=WEEKLY;UNTIL=20141007T000000Z;WKST=SU;BYDAY=TU,TH"
        
        values.put(CalendarContract.Events.RRULE, recurString);
        
       
        Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);

【问题讨论】:

标签: android android-calendar


【解决方案1】:

我想通了,RRULE 字符串本身不应该包含单词“RRULE”。

【讨论】:

    【解决方案2】:

    如果您使用的是 Android 标准 CalendarContract,请使用 DURATION 字段而不是 DTEND,否则您的事件将不会重复。

    参考以下链接:http://developer.android.com/reference/android/provider/CalendarContract.Events.html

    • dtend 如果事件是非重复的
    • 如果事件重复发生的持续时间
    • rrule 或 rdate 如果事件重复发生

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多