我正在尝试从JAVA中的Google Calendar的API获取一些信息。在尝试访问有关事件时间的信息时,出现了问题。我执行以下操作:

CalendarService myService = new CalendarService("project_name");
myService.setUserCredentials("user", "pwd");
URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/private/full");
CalendarQuery q = new CalendarQuery(feedUrl);
CalendarEventFeed resultFeed = myService.query(q, CalendarEventFeed.class);
for (int i = 0; i < resultFeed.getEntries().size(); i++) {
              CalendarEventEntry g = resultFeed.getEntries().get(i);
List<When> t = g.getTimes();
//other operations
}


在CalendarEventEntry上用getTimes()获得的列表t总是空的,我不知道为什么。这对我来说似乎很奇怪,因为对于日历事件,它应该始终存在应该何时发生的描述...我错过了什么?

最佳答案

您必须要知道或者是一次性事件还是周期性事件:

getTimes用于单次事件。

对于重复发生的事件,您必须使用getRecurrence()

或者,可以将singleevents属性设置为true,以便将重复发生的事件作为单个事件返回,并且getTimes将返回一个非空列表:

CalendarQuery q = new CalendarQuery(feedUrl);
q.setStringCustomParameter("singleevents", "true");
CalendarEventFeed resultFeed = myService.query(q, CalendarEventFeed.class);
// process the results as single-events now...


参考:查找文本“ singleevents” here

注意:如果您使用magic-cookie url访问提要,则无论您如何在查询中设置singleevents属性,重复发生的事件总是作为重复发生的事件返回的。

关于java - Google Calendar API“getTimes()”方法出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2850448/

10-10 06:07