有没有办法设置从 Google 日历到我的 android 应用程序的推送通知?

Is there a way to set up a push notification from Google Calendar to my android app?

我正在使用具有 READ_CALENDAR 权限的 Google 日历 API 从日历中查询某些足球比赛,并将它们与我的裁判应用程序的结果集成在一起显示。目前,如果我在用户的日历中添加新游戏,我会查询 onConnected 日历,这还不够频繁。

显然,每当我显示数据时,我都可以重新查询日历 API,但我希望收听来自日历 API 的推送通知,说已添加了一个新事件。 API 此处:https://developer.android.com/guide/topics/providers/calendar-provider.html 没有提及任何内容。

但是,这里:https://developers.google.com/google-apps/calendar/v3/push 谈论推送通知到您自己的服务器。有谁知道从应用程序中执行等效操作的方法吗?

根据答案更新。这段代码看起来合理吗,尤其是在泄漏资源方面?

    private void updateGamesFromCalendar() {
    //get Calendar games if allowed
    if (checkCalendar()) {
        //Look for events with the keyword list in the Title, and dates between today-7 and today+7
        long nowMs = System.currentTimeMillis();
        String[] eventSelectionArgs = new String[]{Long.toString(nowMs - TimeUnit.DAYS.toMillis(7)),Long.toString(nowMs + TimeUnit.DAYS.toMillis(7)) };
        if ((mEventsCursor != null) && (mCalendarObserver != null)) mEventsCursor.unregisterContentObserver(mCalendarObserver);
        mEventsCursor = getContentResolver().query(RefWatchSettings.uriEvents, RefWatchSettings.EVENT_PROJECTION, RefWatchSettings.whereClauseEvents, eventSelectionArgs, RefWatchSettings.orderByEvents);
        if (mCalendarObserver == null) mCalendarObserver = new CalendarEventObserver(null);
        mEventsCursor.registerContentObserver(mCalendarObserver);

        //delete future Calendar games and replace with the new query
        Game.removeFutureCalendarGames(mGames);
        removeFutureCalendarGamesFromDataItem();

        getGamesFromCalendar();
        refreshGameFragments();
        sendFutureGameNotifications();
    }
}

日历事件通过查询检索(参见 Google Doc). Queries return Cursor objects (see Cursor JavaDoc)。 Cursor 物体可以用 registerContentObserver() 观察。 所以查询日历事件,注册一个 Content Observer 并打开你的 Cursor。您应该通过您的 Content Observer 接收事件更新。