Configurando tipos de avisos en las notificaciones

Configurando tipos de avisos en las notificaciones

Como hemos comentado una notificación puede utilizar diferentes métodos para alertar al usuario de que se ha producido. Veamos algunas opciones.

Asociar un sonido

Si consideras que una notificación es muy urgente y deseas que el usuario pueda conocerla de forma inmediata, puedes asociarle un sonido que será reproducido cuando se produzca.

El usuario puede definir un sonido por defecto para las notificaciones. Si quieres asociar el sonido de notificaciones por defecto, utiliza la siguiente sentencia:

 notificacion.defaults |= Notification.DEFAULT_SOUND;

Si prefieres reproducir un sonido personalizado para la notificación, puedes almacenarlo en una carpeta y usar:

notificacion.sound = Uri.parse("file:///sdcard/carpeta/tono.mp3");

Si el fichero de audio se encuentra almacenado en el ContentProvider MediaStore, puedes utilizar la siguiente sentencia:

notificacion.sound =
             
 Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");

Tendrás que sustituir el parámetro "6" por el ID del elemento que quieras reproducir. Si desconoces este ID, puedes realizar una consulta al ContentProvider. Para más información consulta el apartado 9.7.

Añadiendo vibración

 

También es posible alertar al usuario haciendo vibrar el teléfono.

Puedes utilizar la vibración por defecto:

notificacion.defaults |= Notification.DEFAULT_VIBRATE;

O por el contrario tu propio patrón de de vibración:

long[] vibrate = {0,100,200,300};
notification.vibrate = vibrate;

El array define un patrón de longitudes expresadas en milisegundos; donde el primer valor es el tiempo sin vibrar, el segundo es el tiempo vibrado, el tercero sin vibrar y así sucesivamente. Este arraypuede ser tan largo como queramos, pero solo será activado una vez, no se repetirá de forma cíclica

 

Añadiendo parpadeo de LED

Algunos móviles disponen de diodos LED que pueden ser utilizados para avisar al usuario que se ha producido una notificación. Este método es muy interesante si el grado de urgencia del aviso no es lo suficientemente alto para usar uno de los métodos anteriores.

Podemos utilizar el aviso de LED configurado por defecto:

notificacion.defaults |= Notification.DEFAULT_LIGHTS;

O podemos definir una cadencia de tiempo y color específica para nuestra notificación:

       notificacion.ledARGB = 0xff00ff00;
       notificacion.ledOnMS = 300;
       notificacion.ledOffMS = 1000;
       notificacion.flags |= Notification.FLAG_SHOW_LIGHTS;

 

En el ejemplo anterior se empieza indicando que queremos que el LED se ilumine en color verde, durante 300 ms y luego esté apagado durante 1 segundo. Esta secuencia se repetirá de forma cíclica hasta que el usuario atienda la notificación.

Conviene destacar que no todos los móviles disponen de un LED para este propósito. Además, no todos los colores pueden ser utilizados, siendo el color verde el más habitual para indicar una notificación.

Práctica: Una notificación de socorro

1.     En el proyecto anterior, crea un nuevo botón.

2.     Al pulsar este botón se lanzará una nueva notificación que mostrará el texto “¡SOCORRO!”.

3.     El audio de la notificación será una grabación de voz que diga “¡SOCORRO!”.

4.  La notificación hará vibrar el teléfono con el mensaje internacional de socorro S.O.S. codificado en Morse. Para conseguir esto haz vibrar el teléfono con una sucesión de tres pulsos cortos, tres largos y otros tres cortos (. . . - - - . . .).

{jcomments on}