android - dias - calendario diciembre 2018 con festivos



Cómo obtener fiestas nacionales del país seleccionado (2)

Estoy creando una aplicación que puede seleccionar un país de una lista. Al elegir un país, aparece una lista de feriados nacionales de ese país.

He visto CalendarProvider y Google Calendar V3 . Pero parece que solo proporciona el calendario de usuario actual.

¿Cómo puedo pasar las fiestas nacionales como quiero? Cualquier sugerencia también me ayudó

Actualizar:

He encontrado esta publicación que puede obtener vacaciones de lista usando json. En este ejemplo, el código de país definido por id de calendario (pt_br.brazilian#[email protected])
Pero no veo ningún documento que escriba sobre esto.
También encontré otra identificación de calendario (es.usa#[email protected]).

Es posible usar de esta manera? En caso afirmativo, ¿dónde puedo obtener esa identificación del calendario?

https://src-bin.com


Answer #1

La documentación de CalendarProvider indica que solo proporciona la información del calendario del usuario actual.

El proveedor de calendario es un repositorio para los eventos de calendario de un usuario. La API de proveedor de calendario le permite realizar consultas, insertar, actualizar y eliminar operaciones en calendarios, eventos, asistentes, recordatorios, etc.

Necesitará acceder a una API de terceros ( esta , por ejemplo) y cargar esa información en su aplicación.


Answer #2

Problema resuelto mediante el uso de Google Calendar API V3 . La idea que encontré en esta publicación . Las vacaciones pueden obtenerse del calendario predeterminado de vacaciones de google.

La lista de ID del calendario de vacaciones predeterminado se puede encontrar aquí , es compatible con 40 países.

Una pieza de código que maneja el permiso y obtiene la lista de vacaciones: -

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