Connessioni nelle vicinanze è un'API di rete peer-to-peer che consente alle app di rilevare, connettersi e scambiare facilmente dati con i dispositivi nelle vicinanze in tempo reale, indipendentemente dalla connettività di rete.
Alcuni esempi di casi d'uso:
- Lavagna collaborativa:annota le idee con i partecipanti vicini su una lavagna virtuale condivisa.
- Giochi multiplayer locali:configura una partita multiplayer e invita altri utenti nelle vicinanze a partecipare.
- Gioco multischermo:usa uno smartphone o un tablet come controller di gioco per giocare ai giochi visualizzati su un dispositivo Android con schermo di grandi dimensioni nelle vicinanze, ad esempio Android TV.
- Trasferimenti di file offline: condividi foto, video o qualsiasi altro tipo di dati in modo rapido e senza richiedere una connessione di rete.
Introduzione
Connessioni nelle vicinanze consente la pubblicità, il rilevamento e le connessioni tra dispositivi nelle vicinanze in modo peer-to-peer completamente offline. Le connessioni tra i dispositivi sono a larghezza di banda elevata, bassa latenza e completamente criptate per consentire trasferimenti di dati rapidi e sicuri.
Uno degli obiettivi principali di questa API è fornire una piattaforma semplice, affidabile e performante. A livello interno, l'API utilizza una combinazione di tecnologie Bluetooth, BLE e Wi-Fi, sfruttando i punti di forza di ciascuna ed evitando i rispettivi punti deboli. In questo modo, vengono astratte le incertezze di Bluetooth e Wi-Fi in una gamma di piattaforme e versioni del sistema operativo, consentendo agli sviluppatori di concentrarsi sulle funzionalità importanti per i loro utenti.
Panoramica dell'API
L'utilizzo dell'API rientra in due fasi: pre-connessione e post-connessione.
Nella fase di pre-connessione, gli inserzionisti fanno pubblicità, mentre i Discoverer 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 simmetrico che porta entrambe le parti ad accettare (o rifiutare) la richiesta di connessione in modo indipendente.
Una volta accettata una richiesta di connessione da entrambe le parti, la connessione viene considerata stabilita e i dispositivi entrano nella fase post-connessione, durante la quale entrambe le parti possono scambiarsi dati.
Pubblicità e scoperta
Gli inserzionisti diventeranno visibili agli altri scopritori e questi ultimi riceveranno una notifica quando viene trovato o perso un nuovo inserzionista.
Creazione di connessioni
Quando un utente vuole connettersi a un inserzionista nelle vicinanze, può richiedere una connessione.
Entrambe le parti riceveranno una notifica della procedura di avvio della connessione e avranno la possibilità di accettarla o rifiutarla.
Una volta che entrambe le parti avranno risposto, ciascuna riceverà una notifica del risultato. Se entrambe le parti hanno accettato la connessione, questa viene considerata stabilita e il trasferimento dei dati può iniziare.
Scambio di dati
Una volta stabilita una connessione, l'ulteriore utilizzo dell'API è simmetrico, quindi non esiste più una distinzione tra inserzionista e scopritore.
Ora entrambe le parti possono scambiarsi dati. Esistono tre tipi di payload supportati:
- Byte:array di byte limitati a 32 k; sono utili per l'invio di elementi come metadati o messaggi di controllo.
- File:file di qualsiasi dimensione; questi vengono trasferiti dall'app all'interfaccia di rete con una copia minima tra i limiti del processo.
- Stream:un flusso di dati generato al volo, come nel caso di audio/video registrati, senza una dimensione finale nota in anticipo.
I destinatari riceveranno una notifica dei nuovi dati in arrivo e di eventuali aggiornamenti dello stato, annullamenti o errori.
Le connessioni stabilite sono full-duplex, il che significa che inserzionisti e scopritori possono inviare e ricevere dati contemporaneamente.
Raccolta dati
Quando utilizzi l'SDK Nearby di Google Play Services, vengono raccolti dati analitici sull'utilizzo per migliorare l'esperienza.
- Metriche delle prestazioni:la latenza di rilevamento e connessione, l'affidabilità e il throughput vengono raccolti durante la scansione e la connessione ai dispositivi utilizzando l'SDK Nearby.
- Informazioni sul dispositivo:il modello, il paese, la versione build e il nome del pacchetto dell'applicazione vengono raccolti e associati alle metriche di rendimento per identificare segmenti specifici per regione e dispositivo.
Gli utenti finali possono consentire o negare questa raccolta andando su Impostazioni > Google > Utilizzo e diagnostica.