更改同时设置了EVENT_TIMEZONE
和EVENT_END_TIMEZONE
的活动的时区时,对于我尝试的所有日历应用( aCalendar 0.99.8,Google的默认日历4.4。 2 ),EVENT_END_TIMEZONE
未更新到新时区,但会根据新时区显示结束时间。
为什么结束时区设置为与开始/常规时区相同的值?我是否遗漏了一些其他与时区相关的字段,必须为{{{ 3}}要使用/更新?
当我被要求提供一些代码时,这里有一种可能的方法来定义显示所描述行为的事件(请注意,根据代码的上下文,您可能需要使用不同的URI和/或添加其他字段):
final ContentResolver cr = /* ... */;
final long calendarId = /* ... */;
final ContentValues values = new ContentValues();
values.put(CalendarContract.Events.CALENDAR_ID, calendarId);
values.put(CalendarContract.Events.TITLE, "Test");
values.put(CalendarContract.Events.DTSTART, 1428307200000L);
values.put(CalendarContract.Events.EVENT_TIMEZONE, "Europe/Berlin");
values.put(CalendarContract.Events.DTEND, 1428314400000L);
values.put(CalendarContract.Events.EVENT_END_TIMEZONE,"Europe/Berlin");
final Uri result = cr.insert(CalendarContract.Events.CONTENT_URI, values);
使用上面列出的两个应用中的任何一个将事件更改为其他时区后,其EVENT_END_TIMEZONE
将被保留("Europe/Berlin"
),同时相对于新事件显示事件的结束时区(与"Europe/Berlin"
不同的东西)。