Aperçu

Nearby Connections est une API de mise en réseau peer-to-peer qui permet aux applications de détecter facilement les appareils à proximité, de s'y connecter et d'échanger des données avec eux en temps réel, quelle que soit la connectivité réseau.

Voici quelques exemples de cas d'utilisation :

  • Tableau blanc collaboratif : notez des idées avec les participants à proximité sur un tableau blanc virtuel partagé.
  • Jeux multijoueurs locaux : configurez un jeu multijoueur et invitez d'autres utilisateurs à proximité à vous rejoindre.
  • Jeux multi-écrans : utilisez un téléphone ou une tablette comme manette de jeu pour jouer à des jeux affichés sur un appareil Android à grand écran à proximité, comme Android TV.
  • Transferts de fichiers hors connexion : partagez des photos, des vidéos ou tout autre type de données rapidement et sans connexion réseau.

Introduction

Nearby Connections permet d'annoncer sa présence, de détecter les appareils à proximité et de s'y connecter de manière peer-to-peer, entièrement hors connexion. Les connexions entre les appareils sont à bande passante élevée, à faible latence et entièrement chiffrées pour permettre des transferts de données rapides et sécurisés.

L'un des principaux objectifs de cette API est de fournir une plate-forme simple, fiable et performante. En arrière-plan, l'API utilise une combinaison de technologies Bluetooth, BLE et Wi-Fi, en exploitant les points forts de chacune tout en contournant leurs faiblesses respectives. Cela permet d'éliminer les aléas du Bluetooth et du Wi-Fi sur un large éventail de plates-formes et de versions d'OS, ce qui permet aux développeurs de se concentrer sur les fonctionnalités qui comptent pour leurs utilisateurs.

Présentation de l'API

L'utilisation de l'API se divise en deux phases : avant la connexion et après la connexion.

Lors de la phase de préconnexion, les annonceurs se font connaître, tandis que les découvreurs découvrent les annonceurs à proximité et envoient des demandes de connexion. Une demande de connexion d'un découvreur à un annonceur lance un flux d'authentification symétrique qui permet aux deux parties d'accepter (ou de refuser) indépendamment la demande de connexion.

Une fois qu'une demande de connexion est acceptée par les deux parties, la connexion est considérée comme établie et les appareils entrent dans la phase post-connexion, au cours de laquelle les deux parties peuvent échanger des données.

Publicité et découverte

Les annonceurs deviendront visibles pour les autres découvreurs, et les découvreurs seront avertis lorsqu'un nouvel annonceur est trouvé ou a été perdu.

Établir des connexions

Lorsqu'un découvreur souhaite se connecter à un annonceur à proximité, il peut demander une connexion.

Les deux parties seront informées du processus d'initiation de la connexion et pourront l'accepter ou la refuser.

Une fois que les deux parties ont répondu, chacune est informée du résultat. Si les deux côtés ont accepté la connexion, celle-ci est considérée comme établie et le transfert de données peut alors commencer.

Échanger des données

Une fois la connexion établie, l'utilisation de l'API est symétrique. Il n'y a donc plus de distinction entre l'annonceur et le découvreur.

Les deux parties peuvent désormais échanger des données. Il existe trois types de charges utiles compatibles :

  • Octets : tableaux d'octets limités à 32 ko, adaptés à l'envoi d'éléments tels que des métadonnées ou des messages de contrôle.
  • Fichier : fichiers de n'importe quelle taille. Ils sont transférés de l'application vers l'interface réseau avec un minimum de copie entre les limites du processus.
  • Flux : flux de données généré à la volée, comme dans le cas d'un enregistrement audio/vidéo, sans taille finale connue à l'avance.

Les destinataires seront informés des nouvelles données entrantes et de toute mise à jour de la progression, annulation ou échec.

Les connexions établies sont en full-duplex, ce qui signifie que les annonceurs et les découvreurs peuvent envoyer et recevoir des données simultanément.

Collecte des données

Lorsque vous utilisez le SDK Nearby des services Google Play, des données analytiques d'utilisation sont collectées pour améliorer l'expérience.

  • Métriques de performances : la latence de découverte et de connexion, la fiabilité et le débit sont collectés lors de la recherche et de la connexion à des appareils à l'aide du SDK Nearby.
  • Informations sur l'appareil : le modèle de l'appareil, le pays, la version de compilation et le nom du package d'application sont collectés et associés aux métriques de performances pour identifier les segments régionaux et spécifiques à l'appareil.

Les utilisateurs finaux peuvent autoriser ou refuser cette collecte en accédant à Paramètres > Google > Utilisation et diagnostics.