使用Android中的Google java api客户端获取Google日历事件开始和结束时间
如何使用GoogleAPI java客户端解析用户Google日历中事件的开始和结束时间 从谷歌代码安装示例android项目后,我可以进入我的谷歌日历并解析一些信息(如所有日历、事件名称、发布时间和摘要),但我一生都无法获取事件的开始和结束时间 我对代码的理解是这样的 在主活动类(CalendarAndroidSample.java)中,这是获取每个日历标题的方法:使用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<
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是最简单的方法。