android - sync下載 - share google calendar to others




如何獲得選定的國家的國定假日 (2)

我正在製作一個可以從列表中選擇國家的應用程序。 挑選國家時,會出現該國的國定假日。

我已經看到了CalendarProviderGoogle日曆V3 。 但似乎只提供當前的用戶日曆。

如何獲得國家法定節假日? 任何建議也幫助了我

更新:

我發現這個帖子可以使用json獲得列表度假。 在此示例中,由日曆ID(pt_br.brazilian#[email protected])定義的國家代碼
但我沒有看到任何文檔寫這個。
我還發現了另一個日曆ID(en.usa#[email protected])。

有可能使用這種方式? 如果是的話,我在哪裡可以得到這些日曆ID?


CalendarProvider文檔指出,它只提供當前用戶的日曆信息。

日曆提供程序是用戶日曆事件的存儲庫。 日曆提供程序API允許您在日曆,事件,參與者,提醒等上執行查詢,插入,更新和刪除操作。

您將需要訪問第三方API(例如這個 ),並將該信息加載到您的應用程序中。


使用Google Calendar API V3解決問題。 我從這篇文章中找到的想法。 假期可以從谷歌的默認假日日曆中獲得。

默認假期日曆的ID列表可以在這裡找到,支持40個國家。

處理權限並獲取假期列表的一段代碼: -

com.google.api.services.calendar.Calendar client = null;
        credential = GoogleAccountCredential.usingOAuth2(mContext, CalendarScopes.CALENDAR);
        credential.setSelectedAccountName(mList.get(0));
        client = getCalendarService(credential);
        do {
            com.google.api.services.calendar.model.Events events;
            events = client.events().list("en.usa#[email protected]").setPageToken(pageToken).execute();
            onHolidayChecked(events.getItems()); //result return here (events.getItems())
            pageToken = events.getNextPageToken();
        } while (pageToken != null);

private com.google.api.services.calendar.Calendar getCalendarService(GoogleAccountCredential credential) {
    return new com.google.api.services.calendar.Calendar.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build();
}




android-calendar