Panoramica

Nearby Connections è un'API di networking peer-to-peer che consente alle app di rilevare, connettersi e scambiare dati in modo semplice con i dispositivi nelle vicinanze in tempo reale, indipendentemente dalla connettività di rete.

Alcuni esempi di casi d'uso:

  • Lavagna collaborativa: prendi nota delle idee con i partecipanti nelle vicinanze su una lavagna virtuale condivisa.
  • Giochi multiplayer locali: configura un gioco multiplayer e invita altri utenti nelle vicinanze a partecipare.
  • Giochi multischermo: usa un telefono o un tablet come controller di gioco per giocare su un dispositivo Android a grande schermo nelle vicinanze, come Android TV.
  • Trasferimenti di file offline: condividi foto, video o qualsiasi altro tipo di dati in modo rapido e senza bisogno di una connessione di rete.

Introduzione

La funzionalità Connessioni nelle vicinanze consente pubblicità, scoperta e connessioni tra dispositivi nelle vicinanze in modo peer-to-peer completamente offline. Le connessioni tra dispositivi sono a larghezza di banda elevata, a bassa latenza e completamente criptate per consentire trasferimenti di dati rapidi e sicuri.

Un obiettivo principale di questa API è fornire una piattaforma semplice, affidabile e ad alte prestazioni. Dietro le quinte, l'API utilizza una combinazione di tecnologie Bluetooth, BLE e Wi-Fi, sfruttando i punti di forza di ognuno, aggirando le rispettive debolezze. In questo modo, le variabili del Bluetooth e del Wi-Fi vengono astratte su una gamma di piattaforme e versioni del sistema operativo, consentendo agli sviluppatori di concentrarsi sulle funzionalità importanti per gli utenti.

Panoramica dell'API

L'utilizzo dell'API si articola in due fasi: pre-connessione e post-connessione.

Nella fase di pre-connessione, gli inserzionisti si pubblicizzano, mentre gli utenti che utilizzano la scoperta scoprono gli inserzionisti nelle vicinanze e inviano richieste di connessione. Una richiesta di connessione da un Discoverer a un inserzionista avvia un flusso di autenticazione simmetrica che comporta l'accettazione (o il rifiuto) della richiesta di connessione da parte di entrambi i lati.

Una volta accettata da entrambe le parti, la connessione viene considerata stabilita e i dispositivi entrano nella fase successiva alla connessione, durante la quale entrambi i lati possono scambiare dati.

Pubblicità e scoperta

Gli inserzionisti diventeranno visibili ad altre scoperte e agli utenti che scopriranno se un nuovo inserzionista viene trovato o è andato perso.

Stabilire le connessioni

Quando un utente preferisce connettersi a un inserzionista nelle vicinanze, può richiedere una connessione.

Entrambi i lati riceveranno una notifica relativa al processo di avvio della connessione e avranno la possibilità di accettare o rifiutare la connessione.

Una volta che entrambe le parti avranno risposto, verrà notificato il risultato. Se la connessione è accettata da entrambe le parti, la connessione viene considerata stabilita e il trasferimento di dati può iniziare.

Scambio di dati

Una volta stabilita una connessione, l'utilizzo ulteriore dell'API è simmetrico, quindi non c'è più una distinzione tra inserzionista e Discoverer.

Ora entrambi i lati possono scambiare dati. Sono supportati tre tipi di payload:

  • Byte: gli array di byte sono limitati a 32k e sono utili per l'invio di elementi quali metadati o messaggi di controllo.
  • File: file di qualsiasi dimensione; vengono trasferiti dall'app all'interfaccia di rete con una copia minima sui confini dei processi.
  • Stream: un flusso di dati generato all'istante, come nel caso di un audio/video registrato, senza alcuna dimensione finale nota in anticipo.

I destinatari riceveranno una notifica per i nuovi dati in arrivo e per eventuali aggiornamenti, annullamenti o errori relativi all'avanzamento.

Le connessioni stabilite sono full-duplex, il che significa che gli inserzionisti e gli utenti possono scoprire e inviare contemporaneamente i dati.

Raccolta dati

Quando utilizzi l'SDK Nelle vicinanze di Google Play Services, i dati e le analisi sull'utilizzo vengono raccolti per migliorare l'esperienza.

  • Metriche relative alle prestazioni: i servizi di rilevamento e latenza di connessione, affidabilità e velocità effettiva vengono raccolti durante la scansione e la connessione ai dispositivi utilizzando l'SDK Nearby.
  • Informazioni sul dispositivo: il modello del dispositivo, il paese, la versione della build e il nome del pacchetto dell'applicazione vengono raccolti e associati alle metriche relative alle prestazioni per identificare sezioni regionali e specifiche del dispositivo.

Gli utenti finali possono consentire o negare questa raccolta andando a Impostazioni > Google > Utilizzo e diagnostica.