Descripción general

Nearby Connections es una API de redes entre pares que permite que las apps descubran, se conecten y compartan datos fácilmente con dispositivos cercanos en tiempo real, independientemente de la conectividad de red.

Estos son algunos ejemplos de casos de uso:

  • Pizarra colaborativa: Escribe ideas con los participantes cercanos en una pizarra virtual compartida.
  • Juegos multijugador locales: Configura un juego multijugador e invita a otros usuarios cercanos a unirse.
  • Juegos multipantalla: Usa un teléfono o una tablet como control de juegos para jugar juegos que se muestran en un dispositivo Android de pantalla grande cercano, como Android TV.
  • Transferencias de archivos sin conexión: Comparte fotos, videos o cualquier otro tipo de datos de forma rápida y sin necesidad de una conexión de red.

Introducción

Nearby Connections permite la publicidad, el descubrimiento y las conexiones entre dispositivos cercanos de forma completamente sin conexión y de igual a igual. Las conexiones entre dispositivos tienen un ancho de banda alto, una latencia baja y están completamente encriptadas para permitir transferencias de datos rápidas y seguras.

El objetivo principal de esta API es proporcionar una plataforma simple, confiable y eficaz. Internamente, la API usa una combinación de tecnologías Bluetooth, BLE y Wi-Fi, aprovechando las fortalezas de cada una y evitando sus respectivas debilidades. Esto abstrae de manera eficaz las imprecisiones de Bluetooth y Wi-Fi en una variedad de plataformas y versiones de SO, lo que permite que los desarrolladores se enfoquen en las funciones que les importan a sus usuarios.

Descripción general de la API

El uso de la API se divide en dos fases: previa a la conexión y posterior a la conexión.

En la fase previa a la conexión, los anunciantes se anuncian, mientras que los detectores descubren a los anunciantes cercanos y envían solicitudes de conexión. Una solicitud de conexión de un Descubridor a un Anunciante inicia un flujo de autenticación simétrico que hace que ambos lados acepten (o rechacen) de forma independiente la solicitud de conexión.

Después de que ambas partes aceptan una solicitud de conexión, se considera que la conexión se estableció y los dispositivos entran en la fase posterior a la conexión, durante la cual ambas partes pueden intercambiar datos.

Publicidad y descubrimiento

Los anunciantes se harán visibles para otros usuarios que descubran y se les notificará a los usuarios que descubran cuando se encuentre o se pierda un anunciante nuevo.

Cómo establecer conexiones

Cuando un usuario que descubre desea conectarse con un anunciante cercano, puede solicitar una conexión.

Ambas partes recibirán una notificación sobre el proceso de inicio de la conexión y tendrán la oportunidad de aceptarla o rechazarla.

Una vez que ambas partes respondan, cada una recibirá una notificación con el resultado. Si ambos lados aceptaron la conexión, se considera que la conexión se estableció y, luego, puede comenzar la transferencia de datos.

Intercambio de datos

Después de establecer una conexión, el uso posterior de la API es simétrico, por lo que ya no hay distinción entre el anunciante y el descubridor.

Ahora, ambos lados pueden intercambiar datos. Existen 3 tipos de cargas útiles admitidas:

  • Bytes: Son arrays de bytes limitados a 32 KB, ideales para enviar elementos como metadatos o mensajes de control.
  • Archivo: Archivos de cualquier tamaño. Se transfieren desde la app a la interfaz de red con una copia mínima entre los límites del proceso.
  • Transmisión: Es un flujo de datos que se genera sobre la marcha, como en el caso del audio o el video grabados, sin un tamaño final conocido de antemano.

Los destinatarios recibirán notificaciones sobre los datos entrantes nuevos y las actualizaciones de progreso, las cancelaciones o los errores.

Las conexiones establecidas son full-duplex, lo que significa que los anunciantes y los descubridores pueden enviar y recibir datos de forma simultánea.

Recopilación de datos

Cuando se usa el SDK de Nearby de los Servicios de Google Play, se recopilan estadísticas de uso para mejorar la experiencia.

  • Métricas de rendimiento: Se recopilan la latencia, la confiabilidad y el rendimiento de la detección y la conexión cuando se buscan dispositivos y se establecen conexiones con ellos a través del SDK de Nearby.
  • Información del dispositivo: Se recopilan el modelo del dispositivo, el país, la versión de compilación y el nombre del paquete de la aplicación, y se asocian con las métricas de rendimiento para identificar segmentos regionales y específicos del dispositivo.

Los usuarios finales pueden permitir o rechazar esta recopilación en Configuración > Google > Uso y diagnóstico.