lunes, 9 de marzo de 2015

Notificaciones en Android (2da Parte)

image

En el artículo anterior comenzamos a abordar el tema de las notificaciones en Android. Hablamos de los Toast que son las notificaciones más simples que tiene Android. En este artículo vamos a hablar acerca de las notificaciones en la barra de estado. Este tipo de notificaciones son las que se muestran en el dispositivo cuando entra un SMS o cuando nos hacen una llamada perdida.

Estas notificaciones generalmente constan de un icono y un texto descriptivo del mensaje, al desplegar la barra de estado vamos a poder ver la notificación más descriptiva.

Pues bien vamos a hacer un ejemplo donde mostremos una notificación en la barra de estado.

Vamos a crear un botón que al presionarlo pondrá en la barra de estado la notificación. El diseño de nuestro ejemplo quedará de la siguiente manera:

image

Ahora vamos a entrar en el código. Lo primero que tenemos que hacer es capturar el evento clic de nuestro botón para esto en el método onCreate de nuestra Activity vamos a capturar el botón.
Button boton = (Button)findViewById(R.id.button);
Y luego vamos a definir el onclick del botón
boton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

}
});
Y es en el método onClick donde vamos a poner todo el código para mostrar la notificación. 

Lo primero que vamos a hacer es obtener una referencia del servicio de notificaciones de Android. Para esto utilizaremos el método getSystemService como muestra el siguiente código.

//Obteniendo la referencia al servicio de notificaciones
String service = Context.NOTIFICATION_SERVICE;
NotificationManager notManager = (NotificationManager) getSystemService(service);

Luego vamos a configurar el aspecto de la notificación que vamos a mostrar para ello definimos el icono que vamos a mostrar, el texto y la hora y se lo pasamos al constructor de la notificación.

//Configuramos la notificación
int icono = android.R.drawable.stat_notify_error;
CharSequence texto = "Probando Notificacion";
long hora = System.currentTimeMillis();

Notification notificacion = new Notification(icono, texto, hora);


Y por último nos queda definir el texto y la descripción que se mostrará al desplegar la barra de notificaciones, así como la Activity que se mostrará cuando seleccionemos la notificación.

//Configuramos el Intent
CharSequence titulo = "Mensaje de Alerta";
CharSequence descripcion = "Ejemplo de notificación.";

Intent notIntent = new Intent(getApplicationContext(),
MainActivity.class);

PendingIntent contIntent = PendingIntent.getActivity(
getApplicationContext(), 0, notIntent, 0);

notificacion.setLatestEventInfo(
getApplicationContext(), titulo, descripcion, contIntent);


Como podemos ver en el código anterior lo primero que hacemos es preparar la información, es decir el título, la descripción y el intent que ejecutaremos cuando la notificación sea seleccionada. Luego creamos un PendingIntent y le atachamos el intent creado y luego con el método getApplicationContext de la notificación terminamos de preparar la misma.

Una vez configurados todos los parámetros necesarios de la notificación pues procedemos a mostrar la misma, esto lo hacemos de la siguiente forma:

//Mostrando notificación
notManager.notify(1, notificacion);

Con el objeto NotificationManager creado al inicio y mediante su método notify conseguimos lo que queremos, pasándole un id único de notificación y el objeto Notificación que preparamos con anterioridad.


¿Te ha gustado este Post? Compártelo con tus amigos.

No hay comentarios:

Publicar un comentario

IconIconIcon