contacto[arroba]digitallearning.es

Proyecto con emulador Android Wear y Android Studio

Post Series: Plataformas Android (I)

En este tutorial desarrollamos un proyecto que nos permite acceder a unas notificaciones, creadas en el dispositivo móvil, desde el emulador Android Wear, utilizando el IDE Android Studio.

El objetivo de este proyecto no es tanto mostrar el proceso detallado de creación de notificaciones para Android, sino describir los pasos necesarios para poder visualizarlas en un smartwatch con Android Wear a partir de una aplicación que simula la creación de las mismas (correo electrónico entrante y llamadas perdidas).

Antes de desarrollar esta tarea, veremos las pantallas de la aplicación y enumeramos los elementos necesarios, tanto para desarrollar el proyecto principal, como para el acceso del reloj a las notificaciones del dispositivo móvil.

Al final del tutorial tienes el código del proyecto para descargarlo. También podrás ver este proyecto explicado en el próximo Video Premium de esta serie.

Pantallas de la Aplicación

  • Pantalla de presentación de la aplicación:Pantalla Presentacion
  • Menú principal de la aplicación:
    App Notificaciones
  • Muestra información relacionada con la llamada perdida:
    Notificacion Llamada
  • Muestra información relacionada con un correo electrónico entrante:
    Notificacion Email

Proyecto en Android Studio

El proyecto se denomina “NotificacionesAndroid” y estará formado por las siguientes clases y layouts:

  • Clase SplashScreen, que herede de la clase base Activity, encargada de lanzar una pantalla de presentación al iniciar la aplicación, proporcionando una mayor inmersión del usuario en la aplicación.
  • Clase MainActivity, que herede de la clase base Activity, cuya tarea será mostrar el menú principal de la aplicación, desde la cual se crearán las notificaciones de email entrante y llamada perdida.
  • Clase GestionLlamadas, que herede de la clase base Activity, que permita mostrar información complementaria al seleccionar la notificación en la barra de estado.
  • Clase GestionEmail, que herede de la clase base Activity, que proporcione el resto de información del correo electrónico entrante, como puede ser el asunto del mismo.
  • Layout activity_splash_screen.xml, que se mostrará al iniciar la aplicación, formado por un componente de tipo ImageView.
  • Layout activity_main.xml, que definirá el menú principal de la aplicación, formado por tres componentes de tipo EditText, que recibirán los datos que se mostrarán en las notificaciones, y tres componentes de tipo Button, que permitan crear las notificaciones, además de cancelar aquellas que estén pendientes en la barra de estado.
  • Layout activity_gestion_llamadas.xml, compuesto por dos componentes de tipo TextView que mostrarán los datos referentes a la llamada perdida. Además se define un componente de tipo Button, que permitirá regresar al menú principal.
  • Layout activity_gestion_email.xml, formado por dos componentes de tipo TextView, uno de ellos multilínea (el referente al motivo del email), que permitirán mostrar la dirección y el asunto del correo electrónico recibido. También se define un componente de tipo Button para acceder de nuevo al menú principal.

Dispositivo físico

En él se instalará la aplicación Android Wear ya comentada en apartados anteriores, que permita conectar el dispositivo móvil con un emulador para el sistema operativo Android Wear. Lo descomponemos en los siguientes pasos:

  • Conectar el dispositivo físico con el emulador de Android Wear, a través del comando adb -s [nombre del dispositivo] forward tcp:5601 tcp:5601 (puerto de sincronización con emulador). Previamente, será necesario posicionarse dentro del directorio donde se encuentre el ejecutable “adb.exe”, y con el comando adb devices, obtener el nombre del dispositivo físico con el que se sincronizará el emulador:CMD
  • Una vez realizada la tarea anterior, bastará con abrir la aplicación en el dispositivo físico, y seleccionar la opción “Conectar con Emulador” que se podrá encontrar dentro de los ajustes de la aplicación. A continuación, podrá apreciarse como el estado del emulador pasa de “No conectado” a “Conectando..”, y finalmente a “Conectado”. Una vez se ha conectado el emulador, ya será posible acceder a las notificaciones del dispositivo móvil desde el emulador Android Wear:App Android Wear
  • En la imagen superior se puede apreciar el acceso a los ajustes de la aplicación Android Wear. Al usar esta aplicación por primera vez, sólo será necesario seleccionar de una lista el emulador Android Wear que se esté ejecutando en ese momento.

Nota: Para la realización de este ejemplo utilizando un emulador en lugar de un dispositivo físico, se deberá descargar manualmente la aplicación AndroidWear.apk, y posteriormente arrastrar dentro de la pantalla del emulador (a continuación será necesario reiniciar el dispositivo) para su instalación.
Para un funcionamiento correcto (ya que es necesario instalar previamente Google Play Services en el dispositivo), se deberá realizar esta tarea sobre un emulador Nexus 4 o Nexus 5 con una versión de Android 4.3 o superior.

Estructura del proyecto

Estructura Proyecto

Lógica de navegación

1. Pantalla de presentación inicial.

2. Menú principal de la aplicación.

3. Acceso a información de email recibido tras pulsar sobre la notificación recibida.

4. Datos de llamada perdida notificada en la barra de estado.

 

Logica Navegacion

Documentación código fuente

NotificacionesAndroid\app\src\main\java\com\academiaandroid\notificacionesandroid\SplashScreen

  1. Clase que será lanzada al ejecutar la aplicación, mostrando el logo de la misma, y en la que se declara e inicializa la clase TimerTask, que permitirá lanzar una nueva Activity al finalizar el tiempo de espera, además de cerrar la Activity actual:
  2. Además se declara e inicializa la clase Timer, que posibilita la programación de la tarea a lanzar. El objeto creado, invocará al método schedule(), que recibirá entre sus parámetros la tarea a realizar y el tiempo de espera hasta la ejecución de dicha tarea:

NotificacionesAndroid\app\src\main\java\com\academiaandroid\notificacionesandroid\MainActivity

  1. Clase que muestra el menú principal de la aplicación, dónde se deben destacar los eventos que controlan el cambio de estado del botón ‘Notificar Email’ y ‘Notificar Llamada’ cuando este es pulsado por el usuario, creando una notificación en la barra de estado, con la información de la dirección de email, asunto del correo y con el número de teléfono indicado.

NotificacionesAndroid\app\src\main\java\com\academiaandroid\notificacionesandroid\GestionLlamadas

  1. Se encargará de instanciar la clase Bundle para recibir los datos de la notificación de llamada perdida seleccionada, a partir del intent lanzado en la Activity principal:

NotificacionesAndroid\app\src\main\java\com\academiaandroid\notificacionesandroid\GestionEmail

  1. Se encargará de instanciar la clase Bundle para recibir los datos de la notificación de email seleccionada, a partir del intent lanzado en la Activity principal:

Dependencias declaradas

Para este proyecto ha sido necesario añadir la siguiente dependencia para su compatibilidad con temas de la nueva API 21 (archivo “build.gradle” del módulo “app”):

Permisos de aplicación en AndroidManifest.xml

Será necesario declarar permisos de bluetooth, para la conexión que se establecerá entre el dispositivo móvil con el emulador a través de dicha especificación de red inalámbrica:

Nota: En el proceso descrito en este apartado, será necesario disponer de Android 4.4W.2 (API 20) instalado desde la herramienta SDK Manager.

Descarga

Pulsa en el botón si quieres descargar el código de proycto de este tutorial
Descargar

This Post Has 3 Comments

  1. No consigo ver este tutorial al completo, a pesar de tener acceso Premium. ¿Solución?. Gracias.

  2. Hola David, te hemos contestado por email porque hemos hecho pruebas y la descarga funciona bien (de hecho hay descargas de otros usuarios).
    No obstante en el email nos indicastes que no podías descargar, y aquí vemos que nos comentas que no puedes verlo. Si es esto 2º lo que te pasa, por favor haz login con tu usuario y fuerza la carga de nuevo de la página (F5 o la opción que tengas en tu navegador). Puede haber habido un cacheo de la página y por eso no estar viendo la página completa.

    Ya nos dices si se ha solucionado.
    Gracias

Comments are closed.