首页 > 解决方案 > 如何在 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 和我获得代码的博客评论上进行搜索,但我无法理解我必须更改哪些属性才能获得解决方案。

标签: android

解决方案


推荐阅读