Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android

Conseguir Wear OS y Android se Comuniquen: Intercambio de Información a Través de la Capa de Datos

by
Difficulty:IntermediateLength:LongLanguages:

Spanish (Español) translation by James (you can also view the original English article)

Cuando se trata de tareas rápida, simple, usables aplicaciones tienen la ventaja, como un smartwatch que está justo aqui siempre va a ser más accesible que un smartphone o tablet que está flotando en algún lugar en el bolso.

Pero no existe tal cosa como el gadget perfecto, y nadie está delirando sobre duración de la batería de su smartwatch o afirmando que es cada pedacito tan rápido y poderoso como su smartphone o tableta.

Para entregar la mejor experiencia de usuario posible, es necesario jugar a fuerzas de un dispositivo. Si estás desarrollando para llevar OS (operating-system-formerly-known-as-Android-Wear), entonces estás en una posición única para escoger las mejores características de dos dispositivos muy diferentes.

¡Básicamente, usted puede tener lo mejor de ambos mundos!

En este artículo, te mostraré cómo hacer la mayoría fuera de todo sistema operativo Android y OS lleve tienen que ofrecer, con la apertura de un canal de comunicación entre los dos. Una vez que su aplicación portátil y su contraparte usable están chateando, puede delegar las tareas en función del dispositivo es más adecuado para el, si descarga de tareas de uso intensivo de la batería a la computadora de mano, o asegurándose de que la información más importante de su aplicación es siempre fácilmente accesible por mostrar en la muñeca del usuario.

Al final de este artículo, habrá creado una mano y una aplicación para que puedan intercambiar información a través de la capa usable y la API de MessageClient.

¿Qué es la Capa de Dato Usable?

La capa usable de datos proporciona acceso a diversas clases de cliente que puede utilizar para almacenar y recuperar datos, sin tener que ensuciarse las manos con detalles técnicos tales como serialización de datos. Una vez que esta información está en la capa de datos, es accesible a la mano y el dispositivo portátil.

En este artículo, nos lo concentrará en la API MessageClient, que es un mecanismo de comunicación unidireccional que puede utilizar para enviar información a la capa de datos usables. Esta API es particularmente práctica para la ejecución de llamadas a procedimiento remoto (RPC), como el lanzamiento de una actividad de forma remota en el dispositivo de mano o portátil.

Veamos un ejemplo: Imagina que has creado una aplicación de navegación. Esta aplicación necesita un) recuperar actualizaciones de la situación y b) dar las indicaciones del usuario.

La ubicación del dispositivo de monitoreo es una tarea intensiva que rápidamente puede drenar la batería limitada disponible para tu portátil típico. Usando la API de MessageClient, su aplicación usable puede indicar a su contraparte portátil para llevar a cabo este trabajo en su lugar. Una vez que la mano ha realizado este trabajo pesado, puede enviar la información resultante a la portátil a través de la capa de datos, por lo que su aplicación recibe la información que necesita sin tomar un trozo de batería restante de usable.

Como regla general, si su aplicación usable tiene que realizar una tarea que requiere gran batería o poder de procesamiento, las interacciones de usuario complejas, entonces considere la descarga esta obra a la correspondiente aplicación portátil. Por el contrario, si su aplicación se ocupa de información particularmente sensible al tiempo, o contenido que el usuario puedo acceder sobre la marcha, deben mostrar esta información en la aplicación usable.

En nuestro ejemplo de la aplicación de navegación, empujando cada conjunto de direcciones de la computadora de mano a la portátil hace esta información más fácilmente accesible, especialmente para alguien que está fuera de casa e irremediablemente perdido!

Fuera de la caja, la API de MessageClient es un mecanismo de comunicación unidireccional, pero puede implementar mensajería mediante la creación de un emisor y un receptor en de tanto su proyecto mano y portátiles módulo bidireccional, que es exactamente lo que vamos a hacer.

Creación de un Portáble y un Módulo de Mano

En este artículo, vamos a crear una aplicación para que te reconozcan cuando su contraparte mano envía un nuevo mensaje a la capa de datos. Esta aplicación para luego responderá por recuperar este mensaje y mostrar como parte de su interfaz de usuario.

Luego enjuagar y repetir, crear una aplicación portátil que monitorea la capa de datos para los mensajes enviados de su homólogo usable.

Información enviada a través de la API de MessageClient sólo es accesible a la aplicación que lo creó. Si el sistema va a identificar su usable y mano como pertenecientes a la misma aplicación, entonces tiene que tener el mismo nombre de paquete, código de versión y certificado de firma. Marque estas casillas la forma más fácil es crear un proyecto que consiste en un portátil y un módulo portátil:

  • Crear un nuevo proyecto denominado DataLayer.
  • En la pantalla del dispositivo Android de destino, seleccione teléfono y la tableta y el desgaste. Haga clic en siguiente.
  • Para el módulo del teléfono y la tableta, seleccione la plantilla de Actividad Vacía y haga clic en Siguiente.
  • Módulo portátil, seleccione la plantilla de Actividad de Portable en Blanco y haga clic en Siguiente, seguido del Terminar.

Crear la Aplicación Portátil

Ya que estamos implementando comunicación bidireccional, nuestra mano y nuestros módulos móviles necesitan su propio oyente y remitente. Vamos a comenzar por implementar esta funcionalidad en nuestra aplicación portátil.

Voy a mantener las cosas simples y crear una interfaz de usuario consistente en un TextView que te muestran los diversos mensajes de Obtenido de la capa de datos y un botón que, cuando aprovechado, enviará su mensaje a la capa de datos.

Abra activity_main.xml archivo del módulo móvil y agregar lo siguiente:

Ya que hace referencia a unos valores dimens.xml, necesitamos proporcionar las definiciones para estos valores:

  • Control-click en directorio de res/valores del módulo móvil.
  • Seleccione Nuevo > Archivo de Recursos de Valores.
  • Nombre este dimens.xml de archivo y haga clic en Aceptar.
  • Agregar lo siguiente:

Esto nos da la siguiente interfaz de usuario:

Create the user interface for your projects handheld component

Añadir Sus Dependencias

Abra build.gradle archivo del módulo móvil y agregue las siguientes dependencias:

Visualización y Envío de Mensajes en MainActivity

MainActivity, necesitamos realizar lo siguiente:

  1. ¡Mantener al Usuario en el Lazo!

Cuando el usuario aprovecha la Charla al Botón Portable, dos cosas deben suceder:

  • La mano envía un mensaje a la portátil. Voy a usar "Recibí un mensaje de la mano".
  • La computadora de mano proporciona confirmación visual de que el mensaje ha sido enviado con éxito. Voy a usar "Envió un mensaje al usable".

Cuando el usuario grifos Charla al Botón Portable de la mano intenta enviar un mensaje a la capa de datos. El sistema sólo considera este mensaje enviado con éxito una vez que esté en cola para su entrega a un dispositivo específico, que significa al menos un dispositivo debe estar disponible.

En el mejor de los casos, el usuario grifos para Hablar a el Portable , el mensaje llega en cola para entrega y nuestra mano triunfante declara que: "Yo sólo envió un mensaje al usable".

Sin embargo, si no se dispone de ningún dispositivo usable entonces el mensaje no es cola, y por defecto el usuario recibe confirmación de que nuestra aplicación incluso ha intentado enviar un mensaje. Esto podría conducir al usuario a preguntarse si la aplicación está rota, así que también voy a mostrar un Enviando mensaje... notificación, independientemente de si el mensaje es cola con éxito o no.

Al probar esta aplicación, también puede desencadenar múltiples mensajes en rápida sucesión. Para que sea claro cuando cada mensaje ha sido cola para la entrega, estoy agregando un contador a cada mensaje, por lo que nuestra mano se mostrará acaba de enviar un mensaje a los 2 portátiles, acaba de enviar un mensaje a los Portable 3 y así sucesivamente. En el otro lado de la conexión, se mostrará nuestro portátil acaba de recibir un mensaje de 2 mano, acabo de recibir un mensaje de la mano 3 y así sucesivamente.

2. Visualiza los Mensajes Recibidos

En la siguiente sección, que va creando un MessageService que controla la capa de datos y recupera mensajes. Ya que nuestro servicio se presentará su trabajo en un subproceso diferente, te transmiten esta información a nuestro MainActivity, que será responsable de actualizar la interfaz de usuario.

3. Definir la Ruta

Cada mensaje que transmite mediante la API de MessageClient debe contener una ruta, que es una cadena que identifica el mensaje único y permite su aplicación para acceder a ella desde el otro lado de la conexión.

Este camino siempre empieza con una barra diagonal (estoy usando /my_path) y también puede contener una carga opcional, en la forma de una matriz de bytes.

¡4. Revise los Nodos!

En Google servicios 7.3.0 y superior, puede conectar múltiples accesorios personales en un solo dispositivo de mano — por ejemplo, un usuario podría salpicar en accesorios personales múltiples que alternar o usar simultáneamente. Un dispositivo Use OS puede también conectarse a varios dispositivos portátiles durante toda su vida, por ejemplo, si el usuario posee un smartphone con Android y un tablet, o reemplazan su viejo smartphone con una nueva brillante. Tenga en cuenta que cualquier dispositivo que es capaz de conectarse a la capa de datos se conoce como un nodo en el código de la aplicación.

En este artículo, voy a asumir que sólo habrá un único portátil disponible. Alternativamente, usted puede conseguir selectiva sobre qué dispositivos enviar mensajes, usar GetConnectedNodes o getLocalNode.

Vamos a aplicar todo esto en nuestro MainActivity:

Crear un Servicio de Escucha

En este punto, nuestra mano es capaz de empujar mensajes a la capa de datos, pero ya que queremos implementar la comunicación bidireccional, también necesitan escuchar los mensajes que llegan a la capa de datos.

En esta sección, vamos a crear un servicio que realiza lo siguiente:

  1. Monitorear la Capa de Datos para los Eventos

Puede monitorear la capa de datos implementa la interfaz DataClient.OnDataChangedListener o extendiendo WearableListenerService. Yo estoy optando por este último, ya que hay algunos de los beneficios a la extensión WearableListenerService. En primer lugar, WearableListenerService hace su trabajo en un subproceso en segundo plano, para que no tenga que preocuparse por bloquear el subproceso de interfaz de usuario principal. En segundo lugar, el sistema gestiona el ciclo de vida de WearableListenerService para asegurarse de que no consume recursos innecesarios, vinculante y desvinculación del servicio como sea necesario.

El inconveniente es que WearableListenerService se escucha para eventos aún cuando su aplicación no está corriendo, y pondrá en marcha su aplicación si detecta un evento relevante. Si su aplicación sólo debe responder a eventos cuando ya se está ejecutando, entonces WearableListenerService puede vaciar batería el dispositivo de la innecesariamente.

2. Reemplazar las Devoluciones de Llamada de Datos Relevantes

WearableListenerService puede escuchar para un eventos de gama de la capa de datos, así que tendrá que reemplazar los métodos de devolución de llamada de evento datos para los eventos usted está interesado en el manejo. En nuestro servicio, estoy implementando onMessageReceived, que se activa cuando se envía un mensaje desde el nodo remoto.

3. Compruebe la Ruta de Acceso

Cada vez que un mensaje se envía a la capa de datos, nuestra aplicación debe comprobar si tiene el identificador correcto my_path.

4. Difusión de Mensajes a MainActivity

Desde WearableListenerService se ejecuta en un subproceso diferente, puede actualizar la interfaz de usuario directamente. Para mostrar un mensaje en nuestra aplicación, debemos reenviarla a MainActivity, usando un LocalBroadcastManager.

Para crear el servicio:

  • Asegúrese de que tener el módulo móvil seleccionado.
  • Seleccione Nuevo > Servicio de la barra de herramientas de Android Studio.
  • Nombre este servicio MessageService.
  • Agregar lo siguiente:

Por último, abra el Manifest y añadir cierta información a la entrada de MessageService:

Como ya se mencionó, el sistema sólo considera un mensaje enviado con éxito una vez que se puso en cola para entrega, la cual sólo puede ocurrir si uno o más dispositivos portátiles están disponibles.

Puedes ver esto en acción, instalando el módulo móvil en un smartphone compatible o tableta o un dispositivo Virtual Android (AVD). Haga clic botón Hablar a el Wereable y la aplicación mostrará Enviando mensaje... sólo texto. Yo acabo de enviar a el wereable... texto no hará una aparición.

Si nuestro mensaje siempre va a estar en cola para entrega, necesitamos implementar otro conjunto de componentes emisor y receptor en módulo para nuestro proyecto.

Crear Tu Aplicación de Wereable

Nuestra aplicación wearable va a tener una funcionalidad similar como su contraparte portátil, así que me voy saltando sobre todo el código que ya hemos cubierto.

Una vez más, vamos a empezar por crear la interfaz de usuario de la aplicación. Abra activity_main.xml archivo del módulo wear y agregar lo siguiente:

En este momento, la interfaz de usuario debe verse algo como esto:

Create the UI for your Android projects Wear OS module

Abra su build.gradle y agregue las siguientes dependencias:

Ahora, queremos enviar nuestro mensaje a la capa de datos:

A continuación, necesitamos crear un listener que podrá monitorear la capa de datos para los mensajes entrantes y notificar MainActivity cuando es recibido un nuevo mensaje:

  • Asegúrese de que está seleccionado el módulo de wear.
  • Elegir Nuevo > Servicio de la barra de herramientas de estudio Android.
  • Nombre este servicio MessageService y agregue lo siguiente:

Abra el módulo Manifest y crear un filtro de intención para la WearableListenerService:

Puede descargar el proyecto completo desde GitHub.

Probando Su Aplicación

En este punto tienes dos aplicaciones que pueden intercambiar mensajes sobre la capa de datos, pero si vas a poner estas habilidades de comunicación a la prueba, usted necesitará instalar tu proyecto en un dispositivo portátil y un dispositivo portátil.

Si eres un desarrollador de Android, lo más probable es que tiene al menos un smartphone Android o tablet poner alrededor, pero wearables todavía siente una relativamente nueva y producto del lugar, así que usted podría no han invertido en un smartwatch todavía.

Si decides usar OS de desarrollo, debe dar el paso y comprar un smartwatch en algún momento, no existe sustituto para probar tu aplicación en un dispositivo real Android. Sin embargo, si sólo está experimentando con el sistema operativo que use, puede crear un AVD que emula un usable, exactamente del mismo modo que crea un AVD que emula un teléfono inteligente o tableta. Luego puede obtener su AVD y su dispositivo Android físico hablar, mediante el reenvío de puertos.

El primer paso es crear un AVD usable e instalar el módulo de wear en este dispositivo emulado:

  • Seleccione Herramientas > Android > AVD Manager de la barra de herramientas de estudio Android.
  • Haga clic en Crear el Dispositivo Virtual...
  • Seleccione Wear el menú de la izquierda.
  • Elegir el portátil que desea emular y haga clic en Siguiente.
  • Seleccione la imagen del sistema y haga clic en Siguiente.
  • Darle un nombre a su AVD y a continuación, haga clic en Finalizar.
  • Seleccione Ejecutar > Ejecutar... en la barra de herramientas de Android Studio.
  • En la pequeña ventana emergente que aparece, seleccione Wear ...
  • Seleccione la AVD usable que acaba de crear. Después de unos momentos, la AVD pondrá en marcha con su componente usable ya instalado.

A continuación, instale el módulo mano en tu smartphone o tablet:

  • Conecte su dispositivo Android físico a tu máquina de desarrollo.
  • Seleccione Ejecutar > Ejecutar... en la barra de herramientas de estudio Android.
  • Elegir móvil cuando se le solicite.

Por último, necesitamos que nuestro dispositivo Android física y nuestro hablar de AVD:

  • Asegúrese de que Bluetooth está activado en su dispositivo de mano (Ajustes > Bluetooth) y que está conectado a tu máquina de desarrollo mediante un cable USB.
  • En su dispositivo de mano, abra el Play Store y descarga el Wear OS de Google app (anteriormente el usar Android).
  • Inicie la Aplicación de Wear OS.
  • En su usable emulado, haga clic en el botón de Inicio en la banda de acompañamiento de botones (donde se coloca el cursor en la siguiente captura de pantalla) y abra la aplicación de Configuración.

Testing your project by connecting your emulator and your Android smartphone or tablet

  • Seleccione Sistema > Acerca y haga clic en Contruir número varias veces, hasta que vea una mensaje Usted es ahora un desarrollador.
  • Volver al menú principal de Ajustes haciendo clic en el botón Atrás dos veces. Usted notara un nuevo elemento de Opciones de Desarrollador; dar un clic.
  • Seleccione Depuración ADB.
  • En tu máquina de desarrollo, abra un nuevo símbolo del sistema (Windows) o Terminal (Mac) y luego cambiar de directorio (cd) para que apunte a la carpeta de herramientas de la plataforma del SDK de Android. Por ejemplo, mi mando se ve así:
  • Asegúrese de que ADB (Android Debug Bridge) es reconocer el emulador y su adjunto smartphone o tableta, ejecutando el comando /.adb devices. Debe devolver los códigos de dos dispositivos separados.
  • Adelante puerto de comunicación de sus AVD para el adjunto teléfono inteligente o tableta, ejecutando el siguiente comando en la ventana de Terminal o el comando Prompt:
  • Handheld, lanzar el OS lleve aprox. navegar a través de cualquier diálogos introductorios, hasta llegar a la pantalla principal del sistema operativo usar.
  • Abrir el menú desplegable en la esquina superior izquierda y seleccione Agregar un nuevo reloj.
  • Pulse el icono de puntos en la esquina superior derecha y seleccione Acoplar con emulador. Después de unos momentos, debe conectar la computadora de mano a tu emulador.
Use the Wear OS app to pair your emulator with your Android smartphone or tablet

¡Ahora estás listo para probar tu aplicación! Lanzamiento del componente de desgaste en tu emulador y el componente móvil en su mano y el experimento tocando los diferentes Hablar... botones.

Cuando toque Hablar a el wereable en la mano, deben aparecer los siguientes mensajes:

  • Mano: "acaba de enviar el portátil un mensaje."
  • Wearable: "acabo de recibir un mensaje de la mano."
You can now exchange messages over the Data Layer using the MessageClient API

Cuando toque hablar a la mano en el wereable, deben aparecer los siguientes mensajes:

  • Wearable: "acaba de enviar la consola un mensaje."
  • Mano: ' acabo de recibir un mensaje desde el portátil. "

Conclusión

En este artículo, analizamos cómo intercambiar mensajes entre el handheld y su aplicación usable, sobre la capa de datos usables.

En la producción, probablemente usaría esta técnica para hacer algo más interesante que simplemente el mismo intercambio de pocas líneas de texto! Por ejemplo, si usted desarrolla una aplicación que reproduce música en el smartphone del usuario, podría darles la capacidad de reproducción, pausa y saltar canciones directamente desde su portátil, enviando estas instrucciones desde el portátil a mano, sobre la capa de datos.

Usted puede aprender más sobre la capa de datos portátiles, incluyendo cómo sincronizar datos más complejos, en la documentación oficial de Android.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.