android - 如何在 Android 中使用 Google Calendar API 获取过去的事件?
问题描述
说明:我创建了一个演示,并且成功地创建并获取了所有未来的事件。但我也想获取过去的事件。
我不会包含所有代码,但我可以说我完全遵循了这一点(https://kpblogs.com/2016/11/02/how-to-integrate-google-calendar-api-in-android-application/)如果有人想导入整个项目,也可以在那里发布和编码。
现在,我将在此处发布主要部分,因为其他只是模型类和需要 Google 身份验证,所有权限,您可以查看上面的帖子链接:
private void getDataFromApi() {
try {
// List the next 10 events from the primary calendar.
DateTime now = new DateTime(System.currentTimeMillis());
List<String> eventStrings = new ArrayList<String>();
com.google.api.services.calendar.model.Events events = mService.events().list("primary")
.setMaxResults(10)
.setTimeMin(now)
.setOrderBy("startTime")
.setSingleEvents(true)
.execute();
showLog("WHAT: " + events);
List<Event> items = events.getItems();
Events scheduledEvents;
eventsList.clear();
for (Event event : items) {
DateTime start = event.getStart().getDateTime();
if (start == null) {
start = event.getStart().getDate();
}
scheduledEvents = new Events();
scheduledEvents.setEventId(event.getId());
showLog("ID: " + event.getId());
scheduledEvents.setDescription(event.getDescription());
scheduledEvents.setEventSummery(event.getSummary());
scheduledEvents.setLocation(event.getLocation());
scheduledEvents.setStartDate(start.toString());
scheduledEvents.setEndDate("");
StringBuffer stringBuffer = new StringBuffer();
if (event.getAttendees() != null) {
for (EventAttendee eventAttendee : event.getAttendees()) {
if (eventAttendee.getEmail() != null)
stringBuffer.append(eventAttendee.getEmail() + " ");
}
scheduledEvents.setAttendees(stringBuffer.toString());
} else {
scheduledEvents.setAttendees("");
}
eventsList.add(scheduledEvents);
eventStrings.add(
String.format("%s (%s)", event.getSummary(), start));
}
} catch (Exception e) {
e.printStackTrace();
}
}
下面这个属性应该有一些东西来获取过去的事件:
com.google.api.services.calendar.model.Events events = mService.events().list("primary")
.setMaxResults(50)
.setTimeMin(now)
.setOrderBy("startTime")
.setSingleEvents(true)
.execute();
在发布此答案之前,我尝试在 Google、Stack Overflow 和我获得代码的博客评论上进行搜索,但我无法理解我必须更改哪些属性才能获得解决方案。
解决方案
推荐阅读
- powershell - 根据powershell中的fodlername将匹配的文件从驱动器复制到文件夹
- spring - Spring Boot Security 不会忽略某些不需要保护的路径
- firebase - Firebase 令牌是如何生成的?
- java - 如何让这段代码变得更高效?
- javascript - 将 HTML 表作为参数传递给存储过程
- c# - .NET Core 3.1 自定义模型验证与 fluentvalidation
- python - 如何拆分数组中的奇数样本?
- node.js - SyntaxError Importing Mocha for Typescript 单元测试
- javascript - 浏览器插入的标签 Brave 在 head 标签之前
- c - 如何正确检查在 C 中转换为 size_t 时 off_t 值不会溢出?