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 vos idées avec les participants à proximité sur un tableau blanc virtuel partagé.
  • Jeux multijoueurs en local : configurez un jeu multijoueur et invitez d'autres utilisateurs à proximité à le rejoindre.
  • Jeux multiscreen : 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.
  • Transfert 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 la présence d'un appareil, de détecter les appareils à proximité et d'établir des connexions entre eux de manière peer-to-peer entièrement hors connexion. Les connexions entre les appareils sont à haut débit, à 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 tirant parti des avantages de chacune tout en contournant leurs faiblesses respectives. Cela permet d'abstraire efficacement 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.

Dans la phase de pré-connexion, les annonceurs font leur propre publicité, tandis que les découvreurs trouvent les annonceurs à proximité et leur envoient des demandes de connexion. Une demande de connexion d'un Discoverer à 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 la demande de connexion 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 seront visibles par les autres découvreurs, et les découvreurs seront avertis lorsqu'un nouvel annonceur sera trouvé ou perdu.

Établir des connexions

Lorsqu'un utilisateur souhaite se connecter à un annonceur à proximité, il peut envoyer une demande de connexion.

Les deux parties seront informées du processus d'établissement 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 parties ont accepté la connexion, elle 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. Ils sont utiles pour envoyer des é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 à l'interface réseau avec une copie minimale au-delà des limites du processus.
  • Flux : flux de données généré à la volée, comme dans le cas d'un contenu audio/vidéo enregistré, dont la taille finale n'est pas connue à l'avance.

Les destinataires seront informés des nouvelles données entrantes, ainsi que de toute progression, annulation ou échec.

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

Collecte des données

Lorsque vous utilisez le SDK Nearby des services Google Play, des données analytiques sur l'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 d'appareils et de la connexion à ceux-ci à l'aide du SDK Nearby.
  • Informations sur l'appareil : le modèle, le pays, la version et le nom du package de l'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.