使用Android中的Google java api客户端获取Google日历事件开始和结束时间

使用Android中的Google java api客户端获取Google日历事件开始和结束时间,java,android,google-calendar-api,google-api-java-client,Java,Android,Google Calendar Api,Google Api Java Client,如何使用GoogleAPI java客户端解析用户Google日历中事件的开始和结束时间 从谷歌代码安装示例android项目后,我可以进入我的谷歌日历并解析一些信息(如所有日历、事件名称、发布时间和摘要),但我一生都无法获取事件的开始和结束时间 我对代码的理解是这样的 在主活动类(CalendarAndroidSample.java)中,这是获取每个日历标题的方法: void executeRefreshCalendars() { String[] calendarNames; List<

如何使用GoogleAPI java客户端解析用户Google日历中事件的开始和结束时间

从谷歌代码安装示例android项目后,我可以进入我的谷歌日历并解析一些信息(如所有日历、事件名称、发布时间和摘要),但我一生都无法获取事件的开始和结束时间

我对代码的理解是这样的

在主活动类(CalendarAndroidSample.java)中,这是获取每个日历标题的方法:

void executeRefreshCalendars() {
String[] calendarNames;
List<CalendarEntry> calendars = this.calendars;
calendars.clear();
try {
  CalendarUrl url = CalendarUrl.forAllCalendarsFeed();
  // page through results
  while (true) {
    CalendarFeed feed = client.executeGetCalendarFeed(url);
    if (feed.calendars != null) {
      calendars.addAll(feed.calendars);
    }
    String nextLink = feed.getNextLink();
    if (nextLink == null) {
      break;
    }
  }
  int numCalendars = calendars.size();
  calendarNames = new String[numCalendars];
  for (int i = 0; i < numCalendars; i++) {
    calendarNames[i] = calendars.get(i).title;
  }
} catch (IOException e) {
  handleException(e);
  calendarNames = new String[] {e.getMessage()};
  calendars.clear();
}
…将在XML中找到名为“published”的元素,并将该元素的值分配给字符串

因此,返回到第一个引用的java方法executeRefreshCalendars()(在CalendarAndroidSample.java中),更改

calendarNames[i] = calendars.get(i).title;

告诉我事件的发布日期

我认为理解这段代码的问题在于,对于事件的开始和结束时间,数据位于包含两部分的XML元素中

有人能帮我了解一下如何做到这一点吗?我在我的浏览器中打开了10多个标签页,到处都可以找到关于这方面的帮助,我能找到的最能帮助我的是post,但我不知道如何用我正在处理的示例项目来实现它


谢谢。

您需要使用EventFeed并查看EventEntry类

返回的包含startTime/endTime的Atom字符串如下所示:

<gd:when startTime='2010-03-13T14:00Z' endTime='2010-03-13T14:30Z'/>
@Key("gd:when")
public When when;
EventEntry event = eventFeed.get(0);
DateTime start = event.when.startDate;
(When对象的属性,使用@Key注释进行映射)

When对象对When对象上的开始/结束时间属性进行建模

@Key("@startTime")
public DateTime startTime;

@Key("@endTime")
public DateTime endTime;
与eventFeed交互时的客户端代码如下所示:

<gd:when startTime='2010-03-13T14:00Z' endTime='2010-03-13T14:30Z'/>
@Key("gd:when")
public When when;
EventEntry event = eventFeed.get(0);
DateTime start = event.when.startDate;

你有没有可能帮我解决关于这个API的另一个问题?请看一下你是否有一两秒钟的空闲时间。看看我的答案。我认为使用GoogleAPI java客户端创建URL是最简单的方法。