Google ha hecho grandes avances en el aprendizaje automático y la inteligencia artificial. Sus aplicaciones, como Fotos, tienen un excelente reconocimiento integrado de objetos, caras y lugares.
¿Pero qué pasa si tu aplicación necesita responder a las acciones del usuario incluso cuando la pantalla está apagada?
Por ejemplo, una aplicación de cámara puede necesitar activar el flash o hacer una foto cuando el usuario hace un gesto.
¿Cómo se puede activar una actividad en otro dispositivo?
Cuando escribimos aplicaciones que necesitan responder a la entrada del usuario fuera del patrón de uso normal de la aplicación (cuando la pantalla está apagada), necesitamos algún tipo de solución.
Afortunadamente, hay varias herramientas disponibles para este propósito, el Reconocedor de Intenciones, los Receptores de Transmisión y los Servicios.
Estos componentes trabajan juntos para activar cualquier actividad en otro dispositivo cuando la pantalla está apagada.
Reconocedor de intenciones
un reconocedor de intenciones es un mecanismo para escuchar las intenciones relacionadas con una tarea específica.
Las intenciones son el principal método de comunicación entre aplicaciones en Android, y están (por defecto) limitadas a la misma aplicación. Cuando una aplicación se registra para escuchar una intención específica, utiliza un receptor de difusión para obtener el mensaje.
Se podría decir que un reconocedor de intenciones es un receptor de difusión que es activado por las intenciones. El reconocedor de intenciones es una implementación disponible en Google Play Services.
La implementación se ha utilizado para reconocer los gestos del usuario y responder a ellos incluso cuando la pantalla está apagada.
Es un mecanismo ligero que puede integrarse en cualquier aplicación de Android. No requiere permisos adicionales y es fácil de configurar e integrar con cualquier aplicación existente.
Con el reconocedor de intenciones, las aplicaciones pueden responder a intenciones específicas y realizar una tarea concreta.
El reconocedor de intenciones puede recibir intenciones relacionadas con una acción específica, como "clic" o "toque" (para pulsar un botón o un enlace). También puede recibir intentos relacionados con un tipo de contenido específico, como "imagen" o "contenido de imagen".
El reconocedor de intenciones también puede ser activado por gestos específicos del usuario, como "deslizar a la derecha" (para navegar al siguiente elemento) o "deslizar a la izquierda" (para navegar al elemento anterior).
Receptor de emisión
Un receptor de difusión es un mecanismo para escuchar las intenciones de difusión de todo el sistema. Las transmisiones a nivel de sistema son activadas por el propio dispositivo y no están asociadas a ninguna aplicación.
Un ejemplo común de una intención de difusión a nivel de sistema es la intención "dispositivo conectado", que se activa cuando se conecta un teléfono a un cargador.
El dispositivo transmite la intención y todas las aplicaciones pueden escucharla y reaccionar en consecuencia. Por ejemplo, Google Fotos puede comprobar si el dispositivo está conectado y pedir al usuario que se autoenvíe las fotos pendientes.
Puedes crear tus propias intenciones de transmisión para desencadenar acciones de aplicaciones personalizadas.
Un receptor de difusión es una implementación disponible en Google Play Services y puede integrarse con cualquier aplicación de Android.
Se podría decir que un receptor de difusión es una intención de difusión a nivel de todo el sistema que se desencadena por los gestos del usuario o la pulsación de botones en lugar de por eventos del sistema.
Por ejemplo, cuando un usuario desliza el dedo hacia abajo en el dispositivo, se activa la intención de difusión "deslizar hacia abajo".
Con un receptor de difusión, las aplicaciones pueden escuchar eventos específicos del sistema y realizar una acción concreta. El receptor de difusión puede escuchar cualquier intención de difusión enviada por el sistema o activada por el usuario.
Un servicio
Es un componente que se ejecuta en segundo plano y realiza un trabajo. El trabajo puede ser desencadenado por un evento (por ejemplo, que el dispositivo se conecte) o por una intención.
Un servicio se ejecuta incluso si la aplicación que lo creó no se está ejecutando. El servicio puede utilizarse para ejecutar algo en segundo plano y desencadenar una actividad en otro dispositivo cuando la pantalla está apagada.
Un servicio es una implementación disponible en Google Play Services. Esta implementación ha sido utilizada por Google para poner fotos a disposición de cualquier dispositivo con el Asistente de Google.
Con un servicio, las aplicaciones pueden realizar tareas de larga duración sin ninguna interacción por parte del usuario. El servicio puede ser activado por un evento o una intención.
Por ejemplo, puede activar el servicio cuando el dispositivo se enchufa o cuando se conecta a Internet. A continuación, el servicio puede realizar acciones, como enviar nuevas fotos de la cámara al Asistente de Google.
Estos tres mecanismos pueden utilizarse conjuntamente para crear aplicaciones que activen acciones, como el envío de fotos, cuando la pantalla está apagada. Puedes utilizar un reconocedor de intenciones para escuchar intenciones específicas relacionadas con una tarea concreta, como "clic" o "contenido de la imagen".
A continuación, puedes utilizar un receptor de difusión para escuchar las intenciones de difusión de todo el sistema, como "deslizar a la derecha" o "deslizar a la izquierda".
Por último, puedes utilizar un servicio para realizar tareas de larga duración cuando el dispositivo esté conectado a Internet o enchufado.
Estas herramientas están disponibles desde hace tiempo, pero son más importantes que nunca.
Ahora que el Asistente de Google está disponible en todos los dispositivos con Android 9 o superior, puedes utilizar estas herramientas para crear aplicaciones que sean realmente independientes del dispositivo.
El Asistente está disponible en dispositivos móviles, portátiles, televisores, altavoces inteligentes y otros dispositivos.