Android Fundamentos: Añadiendo Eventos al Calendario del Usuario
Spanish (Español) translation by Rodney Martinez (you can also view the original English article)
La última versión de Android SDK, código nombrado Ice Cream Sandwich, llego a los desarrolladores esta semana. Por primera vez, SDK proporciona acceso a la aplicación Calendario en una forma legítimamente diseñada. Una de las tareas más comunes que los desarrolladores a menudo quiere ser capaces de hacer es crear nuevos eventos en los calendarios de los usuarios, así que hoy les mostraremos como.
El Calendario es una aplicación común que el usuario confía en sus dispositivos Android. Las aplicaciones puede tener acceso al Calendario usando la nueva APIs disponible en Android 4.0. Añadir nuevos eventos al Calendario es sencillo y no requiere permisos especiales de aplicaciones.
Nota: El usuario es responsable por configurar la aplicación Calendario con las cuentas apropiadas para Calendario (por ejemplo, Microsoft Exchange).
Paso 0: Comencemos
Este tutorial asume que usted tiene un proyecto con soporte para Android 4.0 (API Nivel 14 compatible) y que usted está compilando con las últimas herramientas. Además asume que tiene configurado apropiadamente la aplicación Calendario en el emulador Android (o un dispositivo portátil, cuando use se vuelva disponible la semana entrante).
Paso 1: Crear la Intent Calendario
Para indicarle al usuario que cree un evento en un calendario, usted necesitará crear un intent apropiado. Este intent iniciará la aplicación Calendario con una pantalla que le permite crear un nuevo evento. El usuario debe confirmar este evento y puede añadir o cambiar cualquiera de los datos del evento asociado con el evento.
El intent para crear un evento de un calendario se muestra a continuación:
1 |
|
2 |
Intent calIntent = new Intent(Intent.ACTION_INSERT); |
3 |
calIntent.setData(CalendarContract.Events.CONTENT_URI); |
4 |
startActivity(calIntent); |
Este código simplemente inicia el intent. No ajusta ninguno de los datos asociados al calendario con el evento.
Paso 2: Sembrando los Detalles del Calendario
Puede plantar la información asociada con un evento de calendario al suministrar un número de intent extras. Los extras pueden ser usados para describir detalles del evento, la fecha y la hora del evento, así como también las configuraciones del evento del calendario como si el evento pudiera ser visto por otros y si está ocupado o tiene tiempo disponible. El normal configuración de un evento de calendario están todas disponibles como Extras. Por ejemplo, el siguiente Intent llama suministros a algún título y la información de descripción sobre un evento:
1 |
|
2 |
Intent calIntent = new Intent(Intent.ACTION_INSERT); |
3 |
calIntent.setType("vnd.android.cursor.item/event"); |
4 |
calIntent.putExtra(Events.TITLE, "My House Party"); |
5 |
calIntent.putExtra(Events.EVENT_LOCATION, "My Beach House"); |
6 |
calIntent.putExtra(Events.DESCRIPTION, "A Pig Roast on the Beach"); |
7 |
startActivity(calIntent); |
Aquí ajustamos el título, la ubicación y el acceso a la descripción para el evento, usando los Extras intent apropiados. Estos campos serán ajustados en un formulario que muestra al usuario para confirmar el evento en su calendario.
Paso 3: Preparando la Fecha y la Hora del Calendario
Los eventos del calendario están asociados con horas y fechas específicas. Algunos eventos tienen un ventana de tiempo específica y otras eventos "todo el día". Usted puede especificar la hora y la fecha de un evento usando extras.
1 |
|
2 |
Intent calIntent = new Intent(Intent.ACTION_INSERT); |
3 |
calIntent.setType("vnd.android.cursor.item/event"); |
4 |
calIntent.putExtra(Events.TITLE, "My House Party"); |
5 |
calIntent.putExtra(Events.EVENT_LOCATION, "My Beach House"); |
6 |
calIntent.putExtra(Events.DESCRIPTION, "A Pig Roast on the Beach"); |
7 |
|
8 |
GregorianCalendar calDate = new GregorianCalendar(2012, 7, 15); |
9 |
calIntent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true); |
10 |
calIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, |
11 |
calDate.getTimeInMillis()); |
12 |
calIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, |
13 |
calDate.getTimeInMillis()); |
14 |
|
15 |
startActivity(calIntent); |
Aquí ajustamos el evento para que sea un evento all day en una fecha específica. Además, puede ajustar mucho más eventos detallados usando simplemente los dos extras para el comienzo y el final de la fecha.
Paso 4: Detalles de Configuración del Evento
Hay varios propósitos extras de los eventos que puede fijar. Estos incluyen si o no otros pueden ver el evento (nivel de acceso) y si o no la hora debería de mostrar si está ocupado o disponible (disponibilidad).
Podría ajustar estos extras del modo siguiente:
1 |
|
2 |
calIntent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE); |
3 |
calIntent.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY |
Aquí incluimos una configuración extra para ajustar el acceso de este evento en el calendario para privado. Ajustamos la disponibilidad durante los períodos de tiempo de eventos a ocupados (ningún otro evento puede superponerse).
Paso 5: Configurando Eventos Recurrentes
Hay eventos únicos como nuestro cerdo asado y después hay eventos recurrentes como reuniones semanales. Puede ajustar la regla de repetición usando un objeto extra como este:
1 |
|
2 |
calIntent.putExtra(Events.RRULE, “FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH”); |
El objeto extra RRULE toma un formato de regla de repetición estándar iCalendar (vea RFC 5544 para más detalles). Por ejemplo, el siguiente crea un regla de repetición para un evento que ocurre cada Martes y Jueves durante 5 semanas.
En conclusión.
La aplicación Calendario ha estado disponible en la plataforma Android durante mucho tiempo, pero no ha habido APIs documentadas para poder tener acceso a ella, hasta ahora. Android 4.0 (API Level 14) incluye un contenido de Calendario completo que puede ser utilizado para acceder a la información del calendario del usuario, proporcionando a la aplicación los permisos apropiados. Sin embargo, una de las tareas más simples y comunes como, añadir un nuevo evento a un calendario de un usuario, no requiere ningún permiso especial y es muy fácil de implementar.
Sobre los Autores
Desarrolladores de Celulares; Lauren Darcey y Shane Conder son coautores de varios libros sobre el desarrollo en Android: un libro de programación a fondo titulado: Desarrollo de Aplicaciones Inalámbricas de Android y Sams Aprenda usted mismo a Desarrollar Aplicaciones para Android en 24 horas. Cuando no escriben, ellos pasan su tiempo desarrollando programas para celulares en sus empresas y proporcionando servicios de consultoría. Ellos pueden ser localizado a través de correo electrónico: androidwirelessdev+mt@gmail.com o por medio de su blog en androidbook.blogspot.com y en Twitter @androidwireless.






