Подтвердить что ты не робот

Как получить национальные праздники в выбранной стране

Я создаю приложение, которое может выбрать страну из списка. Когда вы выбираете страну, появляется список национальных праздников этой страны.

Я видел CalendarProvider и Календарь Google V3. Но, похоже, он предоставляет только текущий календарь пользователя.

Как получить национальные праздники, как я хочу? Любое предложение также помогло мне


Обновление:

Я нашел этот пост, который может получить список праздников с помощью json. В этом примере код страны определяется идентификатором календаря (pt_br.brazilian#[email protected])
 Но я не вижу, чтобы какие-либо документы писали об этом.
Я также нашел еще один идентификатор календаря (en.usa#[email protected]).

Можно ли использовать этот способ? Если да, где я могу получить идентификатор этого календаря?

4b9b3361

Ответ 1

Проблема решена с помощью Google Calendar API V3. Идея, которую я нашел из этого сообщения. Праздник может получить календарь календаря по умолчанию из Google.

Идентификационный список календаря праздников по умолчанию можно найти здесь, поддержка 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();
}

Ответ 2

В документации CalendarProvider указано, что она предоставляет только текущую информацию календаря пользователя.

Поставщик календаря - это хранилище событий календаря пользователя. API-интерфейс Календаря позволяет выполнять запрос, вставлять, обновлять, и удалять операции с календарями, событиями, посетителями, напоминаниями и и так далее.

Вам понадобится доступ к API сторонних разработчиков (этот, например) и загрузить эту информацию в ваше приложение.