2013-09-25 17 views
13

Sto creando un'app che può selezionare il paese da un elenco. Quando scegli un paese, appare un elenco delle festività nazionali di quel paese.Come ottenere le festività nazionali del paese selezionato

Ho visto CalendarProvider e Google Calendar V3. Ma sembra fornire solo il calendario utente corrente.

Come ottenere le festività nazionali come voglio? Ogni suggerimento mi ha anche aiutato


Aggiornamento:

ho trovato this post che può ottenere l'elenco di vacanza utilizzando JSON. In questo esempio, il codice del paese definito dall'id del calendario (pt_br.brazilian#[email protected])
Ma non vedo nessun documento scrivere su questo.
Ho trovato anche un altro ID di calendario (it.usa#[email protected]).

È possibile utilizzare in questo modo? Se sì, dove posso ottenere l'id del calendario?

risposta

23

Problema risolto utilizzando Google Calendar API V3. L'idea che ho trovato da this post. La vacanza può ottenere dal calendario delle festività natalizie di google.

L'elenco di ID del calendario festivo predefinito può essere trovato here, il supporto per 40 paese.

Un pezzo di codice che gestisce il permesso e ottenere la lista di vacanza: -

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(); 
} 
+0

È possibile fare la stessa cosa con javascript? –

+0

@Vitor Guerreiro È una specie di Google API quindi penso che sia possibile – Dolphin

+0

Ricevo questo errore com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException, ho anche cercato su google, fa questo richiede un progetto google che si colleghi all'app per ottenere i dati? – BennyKok

3

La documentazione di CalendarProvider afferma che fornisce solo le informazioni del calendario dell'utente corrente.

Il provider di calendario è un archivio per gli eventi del calendario di un utente. L'API del fornitore del calendario consente di eseguire query, inserire, aggiornare ed eliminare operazioni su calendari, eventi, partecipanti, promemoria e così via.

È necessario accedere a un'API di terze parti (this one, ad esempio) e caricare tali informazioni nell'applicazione.

+0

Grazie per la risposta. La tua API per le vacanze è un servizio a pagamento, sceglierò qualcosa gratuitamente. Hai provato Google Calendar V3?. Ho confuso un po 'quando ho letto i loro documenti – Dolphin

+2

Non ho esperienza con Google Calendar V3. Date un'occhiata a questo: http://kayaposoft.com/enrico/ – ashatte

+0

grazie, questa soluzione sembra promettere. Proverò – Dolphin