jueves, 16 de febrero de 2012

Creando Alertas y Recordatorios de tus aplicaciones Windows Phone

Bien, aprendiendo una cosita más para mi primera aplicación, encuentro el tema de las alertas y notificaciones en Windows Phone, muy útil para ponerlo en nuestras aplicaciones y muy fácil como casi todo :)

Para trabajar con alertas y recordatorios debemos usar el namespace Microsoft.Phone.Scheduler.

Este tipo de funcionalidades son conocidas como Scheduled Notification o Notificaciones Programadas y consisten en un mensaje que se despliega en pantalla a una hora específica, y que permite personalizar los datos que muestra y algunas características, debemos tener en cuenta que tenemos un límite de 50 alarmas o recordatorios por aplicación y que además que intentar publicar una notificación programada antes de la fecha actual del sistema va a generar un error, por lo que debemos generarla para al menos 1 minuto después. Las notificaciones se pueden programar para ser lanzadas diariamente, semanalmente, mensualmente, en cada ultimo día del mes, anualmente o bien, si no establecemos un valor, se ejecutará una sola vez en la fecha inicial.

Para saber cuantas notificaciones tenemos creadas podemos usar el siguiente código, de acuerdo al tipo de objeto que queramos recuperar.

Además de esto debemos tener en cuenta que cada notificación tiene un nombre que debe ser único, por lo que debemos verificar antes de crear uno si existe y si no borrarlo, con una sentencia así de simple:

if (ScheduledActionService.Find("reminder") != null)
    ScheduledActionService.Remove("reminder");


Para las alarmas podemos establecer una periodicidad y un sonido que se escuchará al momento en que programemos la alarma, por otro lado podemos un texto corto. Cuando el usuario presione sobre el mensaje del recordatorio nuestra aplicación se ejecutará en la pantalla principal, podemos crear una alarma con el siguiente sencillo código:


Alarm alarm = new Alarm(name);
alarm.Content = contentTextBox.Text;
alarm.Sound = new Uri("/Ringtones/Ring01.wma", UriKind.Relative);
alarm.RecurrenceType = recurrence;
ScheduledActionService.Add(alarm);


Crear un recordatorio es igual de fácil que crear una alerta, la diferencia será que no podemos establecer un sonido y que podemos establecer un título y una pagina de nuestra aplicación a la que el usuario navegue cuando seleccione el mensaje del recordatorio. Además como está pantalla pertenece a nuestra aplicación le podemos enviar un parámetro vía QueryString y recuperarlo dentro de la aplicación cuando la pantalla se cargue, veamos el código de creación:

Reminder reminder = new Reminder(name);
reminder.Title = "Reminder Title";
reminder.Content = "Reminder Content";
reminder.BeginTime = beginTime;
reminder.ExpirationTime = expirationTime;
reminder.RecurrenceType = recurrence;
reminder.NavigationUri = new Uri("/MainPage.xaml?reminder=" + identifier , UriKind.Relative); ScheduledActionService.Add(reminder);

Debemos de tener presente que la Uri que establecemos para un recordatorio solo puede ser una Uri relativa. 

Como siempre en MSDN encuentras más detalles e incluso un ejemplo de implementación.

Espero les sea útil para adicionar utilidades a sus aplicaciones Windows Phone.
Sorey

1 comentario:

f1lander dijo...

Muchas gracias por este post! GRacias!! saludos desde Honduras!