ALERTAS Y NOTIFICACIONES
Un desarrollador debe asegurarse dependiendo de la aplicación que esté creando del tipo de notificaciones que usuará, las notificaciones influyen mucho en las distintas aplicaciones ya que por una mala decisión frente a esta puede molestar tanto al usuario como para eliminar la aplicación y no querer volver a instalarla.
Existen varias maneras de crear notificaciones que no necesariamente intervengan en la Interfaz de Usuario (IU), entre ellas están:
- Flash LED.
- Hacer vibrar el teléfono.
- Escuchar ringtone.
También existen notificaciones visuales que incluyen:
- Toast.
- AlertDialog.
- ProgressDialog.
- Status Bar Notifications.
CÓMO OBTENER LA ATENCIÓN DEL USUARIO.
No necesariamente se debe usar notificaciones para alertar a los usuarios, también pueden usarse sonidos, luces o acciones cuando el usuario no esté interactuando activamente con la aplicación:
- Luces. En la actualidad la mayoría de dispositivos móviles usan LED, pero si el dispositivo no cuenta con este servicio existen otras alternativas para notificar al usuario.
- Acción. Este tipo de notificaciones (vibración) puede ser aplicación en cualquier dispositivo móvil.
- Sonido. Para usar este tipo de notificaciones se usará el RingtoneManager que reproducirá el sonido de notificación por defecto en el dispositivo.
CÓMO HACERLO.
1.Se debe crear un nuevo proyecto en Android Studio llamado LightsActionSound, se hará necesario el API 21 como mínimo para compilar este proyecto, y se debe seleccionar una actividad vacía.
2.Posteriormente en el archivoactivity_main.xmlse reemplazará lo existe en<TextView>:
3. Ahora en el archivo<AndroidManifest.xml>se debe agregar un nuevo permiso para VIBRACIÓN en el dispositivo:
4. Ahora en el archivo<MainActivity.java>se definirán las siguientes variables globales:
5. Se debe copiar el siguiente método para obtener el ID de la Cámara en la clase, este método, si encuentra la cámara devuelve el ID de esta, de lo contrario retornará null y si el ID es null se desactivara el botón:
6. Y el siguiente código dentro del método onCreate():
7. Ahora se debe agregar el código para manejar cada uno de los clic de cada botón:
CREANDO UN TOAST USANDO UN DISEÑO PERSONALIZADO.
1. A Para crear un diseño personalizado se debe abrir y se debe reemplazar el por que contendrá el siguiente código:
2. Ahora se debe crear un nuevo archivo de recursos en la carpeta res/drawable llamado border_square.xml y se debe escribir el siguiente código:
3. Ahora se debe crear un nuevo archivo de recursos en la carpeta res/layout llamado toast_custom.xml y se debe escribir el siguiente código:
4. Ahora en el archivo <MainActivity.java> y se debe escribir el siguiente código:
MOSTRAR CAJAS DE MENSAJES CON AlertDialog
1.Para usar este tipo de mensajes se tomará como ejemplo confirmar eliminar, para esto debe abrir el <main_activity.xml> y se creará un botón:
2. Ahora se creará el método llamado confirmDelele() en el MainActivity.java:
NOTA: Para agregar una imagen al AlertDialog simplemente se debe agregar: .setIcon(R.mipmap.ic_launcher) para este caso será la imagen inicial de la aplicación.
En conclusión este tipo de notificaciones son creadas para la confirmación de una acción como por ejemplo el borrado. Algo importante es que no se podrá usar Mensajes y Listas ya que setMessage() tendrá prioridad.
VISUALIZACIÓN DE PROGRESS DIALOG
ProgressDialog no es la mejor opción para mostrar la carga o el progreso de una actividad o proceso, esto es debido a que mientras se muestre este tipo de dialogo el usuario no podrá interactuar con la aplicación, lo mejor sería usar ProgressBar, por eso este tipo de diálogo se debe evitar si es posible. Aunque en ocasiones es necesario usarlo como por ejemplo cuando se necesita completar una orden antes de continuar.
1.Lo primero será reemplazar el <TextView> por un <Button> que tendrá el siguiente código:
2. En el archivo <MainActivity.java> se deberá agregar unas variables globales y crear el método que usara el botón para lanzar el processDialog:
NOTA. Es importante este ajuste ya que si no se hace la correcta configuración, se tendrá un problema, sí .setCancelable(false) este deshabilitará la opción de retroceder con el botón atrás del dispositivo quedando el usuario atascado dentro del proceso, de lo contrario sí .setCancelable(true) este permitirá cancelar el proceso, la sintaxis de uso de este es la siguiente:
mDialog.setCancelable(false);
Existe otra manera de usar progressDialog, si se agrega esta linea de código:
El resultado será este:
LUCES, ACCIÓN Y SONIDO REDUX USANDO NOTIFICACIONES.
Las notificaciones representan un muy buen medio para mostrar información a un usuario, además de ser las menos molestas de todas las notificaciones disponibles. Es por esta razón que el objeto Notification ofrece soporte para tres métodos diferentes, además debe tener como opción habilitar/deshabilitar al usuario sonidos, acciones, luces, entre otras en la aplicación.
COMO HACERLO.
1.Lo primero que se debe hacer es agregar en el <AndroidManifest.xml> el permiso para la opción de vibración:
2. Ahora en el <activity_main.xml> se debe reemplazar el <TextView> por el <Button> que contendrá el siguiente código:
3. Ahora en el archivo <MainActivity.java> se debe agregar los métodos que manejarán los clics de los botones:
El resultado:
Agregar un botón a la notificación usando addAction ()
Para agregar un botón a la notificación en el archivo <MainActivity.java> se debe crear el método clickLightsActionSound() que contendrá este código:
NOTA. Este método será usado para que agregue un botón a la notificación.
el resultado es este:
EXPANDIENDO NOTIFICACIONES.
NOTA. Este método creará una notificación con título de contenido grande.
- BIGPICTURESTYLE.
NOTA. Este método crea una notificación que puede expandirse mostrado un estilo de imagen grande.
-BIGTEXTSTYLE.
NOTA. Este método creará una notificación con un estilo de texto grande.
CREANDO UNA NOTIFICACIÓN DE REPRODUCTOR MULTIMEDIA.
Para crear una notificación de reproductor multimedia:
1. Inicialmente se deberá reemplazar el <TextView> por <Button> que contendrá el siguiente código:
2. Este método se debe recalcar como @Deprecated y dentro del método showNotification() se copiará el siguiente código:
El resultado final será:
Y en la pantalla de notificaciones se mostrará:
HACER UNA LINTERNA CON UNA NOTIFICACIÓN DE AVISO
Algo que cabe resaltar es que para el desarrollo de esta aplicación se necesita la API 23 como mínimo requerimiento para la emulación de la misma.
COMO HACERLO.
1.Para esto se debe crear un proyecto nuevo llamado FlashlightWithHeadsUp con un actividad vacía. Posteriormente en el <AndroidManifest.xml> ya que solo se quiere una instancia única con Android:launchMode="singleInstance":
2.Ahora en <activity_main.xml> se debe reemplazar el <TextView> por un <ToggleButton> que contendrá el siguiente código:
3.Ahora en el <MainActivity.java> hay que definir las siguientes variables globales:
4.Y en el método onCreate() de <MainActivity.java> se agregarán para configurar la cámara:
5. Ahora se debe agregar el siguiente método <MainActivity.java> que se encargara de manejar la respuesta cuando el usuario presione la notificación:
6.Con el siguiente método en <MainActivity.java> se obtendrá el ID de la cámara:
7.Ahora se debe agregar estos dos métodos para manejar el moto linterna:
8.Finalmente, hay que agregar este método para crear la notificación:
el resultado es este: