Descripción general

Conexiones cercanas es una API de red de par a par que permite que las apps descubran dispositivos cercanos, se conecten a ellos y compartan datos con ellos en tiempo real, independientemente de la conectividad de red.

Estos son algunos ejemplos de casos de uso:

  • Pizarra colaborativa: Anota ideas con los participantes cercanos en una pizarra virtual compartida.
  • Juegos multijugador locales: Configura un juego multijugador y, luego, invita a otros usuarios cercanos a unirse.
  • Juegos multipantalla: Usa un teléfono o una tablet como control de juegos para jugar 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 con rapidez y sin necesidad de una conexión de red.

Introducción

Conexiones cercanas habilita la publicidad, el descubrimiento y las conexiones entre dispositivos cercanos de forma completamente sin conexión y de par a par. Las conexiones entre los dispositivos son de gran ancho de banda, baja latencia y están completamente encriptadas para permitir transferencias de datos rápidas y seguras.

Uno de los objetivos principales de esta API es proporcionar una plataforma que sea simple, confiable y de alto rendimiento. De forma interna, la API usa una combinación de tecnologías Bluetooth, BLE y Wi-Fi, lo que aprovecha las fortalezas de cada una y evita sus respectivas debilidades. Esto abstrae de manera eficaz los caprichos 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 a sí mismos, mientras que los descubridores descubren 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étrica que hace que ambos lados acepten (o rechacen) de forma independiente la solicitud de conexión.

Una vez que ambos lados aceptan una solicitud de conexión, se considera que se estableció la conexión y los dispositivos ingresan a la fase posterior a la conexión, durante la cual ambos lados pueden intercambiar datos.

Publicidad y descubrimiento

Los anunciantes se volverán visibles para otros descubridores, y estos recibirán notificaciones cuando se encuentre un anunciante nuevo o se pierda uno.

Establece conexiones

Cuando un descubridor desea conectarse a 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 hayan respondido, se les notificará el resultado. Si ambos lados aceptaron la conexión, esta se considera establecida y, luego, puede comenzar la transferencia de datos.

Intercambio de datos

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

Ambas partes ahora pueden intercambiar datos. Existen 3 tipos de cargas útiles compatibles:

  • Bytes: Son arrays de bytes limitados a 32 KB, que son útiles para enviar elementos, como metadatos o mensajes de control.
  • Archivo: Archivos de cualquier tamaño; se transfieren de 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 de audio o video grabado, sin un tamaño final conocido de antemano.

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

Las conexiones establecidas son dúplex completo, lo que significa que los anunciantes y los descubridores pueden enviar y recibir datos de forma simultánea.

Recopilación de datos

Cuando usas 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 de descubrimiento y conexión, la confiabilidad y la capacidad de procesamiento cuando se buscan dispositivos y se establece conexión con ellos a través del SDK de Nearby.
  • Información del dispositivo: El modelo del dispositivo, el país, la versión de compilación y el nombre del paquete de la aplicación se recopilan y asocian con las métricas de rendimiento para identificar porciones regionales y específicas del dispositivo.

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