Android Essentials aggiunta di eventi al calendario dell'utente

L'ultima versione di Android SDK, nome in codice Ice Cream Sandwich, ha raggiunto gli sviluppatori questa settimana. Per la prima volta, l'SDK fornisce l'accesso all'applicazione Calendario in modo legittimo. Uno dei compiti più comuni che gli sviluppatori spesso vogliono essere in grado di fare è creare nuovi eventi nel calendario dell'utente, quindi oggi ti mostreremo come.

Il calendario è un'applicazione comune che gli utenti fanno affidamento sui loro dispositivi Android. Le applicazioni possono accedere al Calendario utilizzando le nuove API disponibili in Android 4.0. L'aggiunta di nuovi eventi al Calendario è semplice e non richiede autorizzazioni speciali per le applicazioni.

Nota: l'utente è responsabile della configurazione dell'applicazione Calendario con gli account Calendario appropriati (ad esempio, Microsoft Exchange).

Passaggio 0: Introduzione

Questo tutorial presuppone che tu abbia un progetto che supporti Android 4.0 (compatibile con API 14) e che tu stia compilando gli strumenti più recenti. Presuppone anche che tu abbia correttamente configurato l'applicazione Calendario sull'emulatore Android (o su un dispositivo adatto, quando uno sarà disponibile nelle prossime settimane).

Passaggio 1: crea l'intento del calendario

Per richiedere all'utente di creare un evento del calendario nel calendario esistente, è necessario creare l'intento appropriato. Questo intento avvierà l'applicazione Calendario con una schermata che consentirà loro di creare un nuovo evento. L'utente deve confermare questo evento e può aggiungere o modificare qualsiasi dato relativo all'evento associato all'evento.

L'intento di creare un evento del calendario è mostrato di seguito:

Intent calIntent = new Intent (Intent.ACTION_INSERT); calIntent.setData (CalendarContract.Events.CONTENT_URI); startActivity (calIntent);

Questo codice lancia semplicemente l'intento. Non imposta nessuno dei dati del calendario associati all'evento.

Passaggio 2: Semina i dettagli del calendario

È possibile eseguire il seeding delle informazioni associate a un evento del calendario fornendo un numero di extra di intent. Gli extra possono essere utilizzati per descrivere i dettagli dell'evento, la data e l'ora dell'evento, così come le impostazioni degli eventi del calendario, come se l'evento può essere visto da altri e se è occupato o disponibile. Le tipiche impostazioni degli eventi del calendario sono tutte disponibili come Extra. Ad esempio, la seguente richiesta di intento fornisce alcune informazioni su titolo e descrizione su un evento:

Intent calIntent = new Intent (Intent.ACTION_INSERT); calIntent.setType ( "vnd.android.cursor.item / evento"); calIntent.putExtra (Events.TITLE, "My House Party"); calIntent.putExtra (Events.EVENT_LOCATION, "My Beach House"); calIntent.putExtra (Events.DESCRIPTION, "Un maiale arrostito sulla spiaggia"); startActivity (calIntent);

Qui impostiamo il titolo, la posizione e l'accesso alla descrizione per l'evento utilizzando l'intento appropriato. Questi campi verranno impostati in un modulo che viene visualizzato per consentire all'utente di confermare l'evento nel proprio calendario.

Passaggio 3: Seeding Calendar Date e Times

Gli eventi del calendario sono associati a date e orari specifici. Alcuni eventi hanno una finestra temporale specifica e altri sono? Tutto il giorno? eventi. Puoi anche specificare la data e l'ora di un evento usando anche gli extra.

Intent calIntent = new Intent (Intent.ACTION_INSERT); calIntent.setType ( "vnd.android.cursor.item / evento"); calIntent.putExtra (Events.TITLE, "My House Party"); calIntent.putExtra (Events.EVENT_LOCATION, "My Beach House"); calIntent.putExtra (Events.DESCRIPTION, "Un maiale arrostito sulla spiaggia"); GregorianCalendar calDate = new GregorianCalendar (2012, 7, 15); calIntent.putExtra (CalendarContract.EXTRA_EVENT_ALL_DAY, true); calIntent.putExtra (CalendarContract.EXTRA_EVENT_BEGIN_TIME, calDate.getTimeInMillis ()); calIntent.putExtra (CalendarContract.EXTRA_EVENT_END_TIME, calDate.getTimeInMillis ()); startActivity (calIntent);

Qui impostiamo l'evento come un evento per tutto il giorno in una data specifica. Puoi anche impostare eventi molto più fini semplicemente usando i due extra per l'ora di inizio e fine.

Passaggio 4: dettagli sulla configurazione degli eventi

Ci sono molti altri extra di intenti che puoi seminare. Questi includono se altri possono vedere l'evento (livello di accesso) e se l'ora dovrebbe essere indicata come occupata o disponibile (disponibilità)

Puoi impostare questi extra come segue:

calIntent.putExtra (Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE); calIntent.putExtra (Events.AVAILABILITY, Events.AVAILABILITY_BUSY

Qui includiamo un'impostazione aggiuntiva per impostare l'accesso di questo evento nel calendario a privato. Impostiamo la disponibilità durante il periodo di tempo dell'evento su occupato (nessun altro evento può sovrapporsi).

Passaggio 5: configurazione degli eventi ricorrenti

Ci sono eventi una tantum, come il nostro maiale arrosto, e poi ci sono eventi ricorrenti, come incontri settimanali. Puoi seminare la regola di ricorrenza usando un'intenzione extra, come questa:

calIntent.putExtra (Events.RRULE,? FREQ = WEEKLY; COUNT = 10; WKST = SU; BYDAY = TU, TH?);

L'intento RRULE extra richiede un formato di regole di ricorrenza standard di iCalendar (vedi RFC 5544 per dettagli). Ad esempio, quello sopra crea una regola di ricorrenza per un evento che si verifica ogni martedì e giovedì per 5 settimane.

Conclusione

L'applicazione Calendar è stata disponibile sulla piattaforma Android per un lungo periodo, ma non ci sono state API documentate per accedervi: fino ad ora. Android 4.0 (livello API 14) include un provider di contenuti calendario completo che può essere utilizzato per accedere alle informazioni del calendario dell'utente, a condizione che l'applicazione disponga delle autorizzazioni appropriate. Tuttavia, una delle attività più semplici e comuni, l'aggiunta di un nuovo evento al calendario di un utente, non richiede autorizzazioni speciali ed è molto semplice da implementare.

Riguardo agli Autori

Gli sviluppatori mobili Lauren Darcey e Shane Conder hanno coautore diversi libri sullo sviluppo di Android: un libro di programmazione approfondito intitolato Sviluppo di applicazioni wireless Android e Sams ti insegna a sviluppare applicazioni Android in 24 ore. Quando non scrivono, passano il loro tempo a sviluppare software mobile presso la loro azienda ea fornire servizi di consulenza. Possono essere contattati via email a [email protected], tramite il loro blog su androidbook.blogspot.com e su Twitter @androidwireless.