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.

{ Leer Más }


martes, 3 de marzo de 2015

Notificaciones en Android (1era Parte)

image

Con este artículo comenzaremos a abordar un tema importante en el desarrollo de aplicaciones en Android: las notificaciones. En este artículo hablaremos acerca de los llamados Toast.

Un Toast es un mensaje que se muestra en la pantalla durante unos segundos y que desaparece automáticamente sin que el usuario incida sobre el mismo.

Este tipo de notificaciones son recomendables para mostrar mensajes rápidos y sencillos al usuario pero, por el contrario, no deberían utilizarse para hacer notificaciones importantes.

Para usar este tipo de notificación usamos la clase Toast. Esta tiene un método llamado makeText al que se le deben pasar tres parámetros; el primero, el contexto de la actividad, el segundo el texto a mostrar y como tercer parámetro, la duración del mensaje en la pantalla. Este último parámetro puede tomar los valores LENGTH_LONG o LENGTH_SHORT. Luego, usamos el método show() para mostrar el mensaje en pantalla.

Pero vamos a crear un simple Toast para esto creamos un botón cualquiera y en su método click hacemos lo comentado en el párrafo anterior, quedaría algo como el siguiente código:

simpleToastButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Toast toast1 =
Toast.makeText(getApplicationContext(),
"Toast simple", Toast.LENGTH_SHORT);

toast1.show();
}
});

donde simpleToastButton sería la variable que guarda la referencia del botón.

Con este código al hacer click sobre el botón nos aparecerá en la pantalla un mensaje con el texto “Toast simple”

Pero esta notificación podemos mostrarla en otras posiciones, lo mismo en el centro que arriba, que a la izquierda que a la derecha. Esto lo podemos hacer usando el método setGravity al cual se le pasa como parámetros un entero que representa el “gravity” hacia donde se desea, un offset para las x y otro para las y. Pero veamos un ejemplo de código.

gravitytButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Toast toast1 =
Toast.makeText(getApplicationContext(),
"Toast gravity", Toast.LENGTH_SHORT);

toast1.setGravity(Gravity.CENTER, 0, 0);
toast1.show();
}
});

En este método, creamos el Toast definiéndole el texto y la duración, luego le establecemos el “gravity” pasándole el entero Gravity.CENTER, que, como su nombre bien lo indica es para ubicar la notificación en el centro y le pasamos como offset 0 tanto para las x como para las y.

Con estos dos ejemplos hemos podido ver cómo se pueden usar los Toast a la hora de notificar cosas rápidas a los usuarios. Este tipo de notificaciones se pueden personalizar aún más definiendo su diseño en un xml e “inflándolo” en el layout del activity de forma tal que le mostremos al usuario un mensaje más enriquecido.

{ Leer Más }


IconIconIcon