2010-05-17 5 views
1

Я пытаюсь получить несколько информации из API календаря Google в JAVA. При попытке получить доступ к информации о времени события у меня возникла проблема. Я делаю следующее:Проблема с Google Calendar API метод getTimes()

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 
} 

В списке т, полученные с getTimes() на CalendarEventEntry является всегда пустой, и я не могу понять, почему. Мне это кажется странным, потому что для календарного события всегда должно существовать описание того, когда это должно произойти ... что мне не хватает?

ответ

1

Вы должны знать, или отдельные события времени против повторяющихся событий:

getTimes используется для отдельных временных событий.

Для повторяющихся событий необходимо использовать getRecurrence()

Или, вы можете установить singleevents свойство истинно, поэтому повторяющиеся события возвращаются в виде отдельных событий и 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.

Примечание: если вы используете URL-адрес волшебного cookie для доступа к фиду, повторяющиеся события всегда возвращаются как повторяющиеся события, независимо от того, как вы задали свойство singleevents в запросе.