Połączenia w pobliżu to interfejs API sieci peer-to-peer, który umożliwia aplikacjom łatwe wykrywanie urządzeń w pobliżu, łączenie się z nimi i wymienianie z nimi danych w czasie rzeczywistym, niezależnie od połączenia z siecią.
Przykładowe przypadki użycia:
- Wspólna tablica: zapisuj pomysły z uczestnikami spotkania na wspólnej wirtualnej tablicy.
- Gry w lokalnym trybie wieloosobowym: skonfiguruj grę wieloosobową i zapraszaj do niej innych użytkowników znajdujących się w pobliżu.
- Granie na wielu ekranach: używaj telefonu lub tabletu jako kontrolera do gier wyświetlanych na dużym ekranie urządzenia z Androidem, np. Androida TV.
- Przesyłanie plików offline: szybko udostępniaj zdjęcia, filmy i inne dane bez połączenia z siecią.
Wprowadzenie
Połączenia w pobliżu umożliwiają reklamowanie, wykrywanie i nawiązywanie połączeń między urządzeniami w pobliżu w trybie peer-to-peer w pełni offline. Połączenia między urządzeniami mają dużą przepustowość i małe opóźnienia oraz są w pełni szyfrowane, co umożliwia szybkie i bezpieczne przesyłanie danych.
Głównym celem tego interfejsu API jest zapewnienie prostej, niezawodnej i wydajnej platformy. Interfejs API korzysta z technologii Bluetooth, BLE i Wi-Fi, wykorzystując zalety każdej z nich i omijając ich wady. Dzięki temu deweloperzy nie muszą się martwić o zawiłości Bluetootha i Wi-Fi na różnych platformach i wersjach systemów operacyjnych, a mogą skupić się na funkcjach, które są ważne dla użytkowników.
Przegląd interfejsów API
Korzystanie z interfejsu API dzieli się na 2 fazy: przed połączeniem i po połączeniu.
W fazie przed połączeniem reklamodawcy reklamują się, a osoby wyszukujące odkrywają pobliskich reklamodawców i wysyłają prośby o połączenie. Prośba o połączenie wysłana przez osobę odkrywającą do reklamodawcy inicjuje symetryczny proces uwierzytelniania, w wyniku którego obie strony niezależnie akceptują (lub odrzucają) prośbę o połączenie.
Gdy prośba o połączenie zostanie zaakceptowana przez obie strony, połączenie jest uznawane za nawiązane, a urządzenia przechodzą w fazę po połączeniu, podczas której obie strony mogą wymieniać dane.
Reklamy i odkrywanie
Reklamodawcy będą widoczni dla innych osób i firm, a osoby i firmy będą otrzymywać powiadomienia o znalezieniu lub utracie nowego reklamodawcy.
Nawiązywanie połączeń
Gdy osoba odkrywająca chce połączyć się z reklamodawcą w pobliżu, może wysłać prośbę o połączenie.
Obie strony zostaną powiadomione o rozpoczęciu procesu nawiązywania połączenia i będą miały możliwość zaakceptowania lub odrzucenia połączenia.
Gdy obie strony odpowiedzą, każda z nich otrzyma powiadomienie o wyniku. Jeśli obie strony zaakceptują połączenie, zostanie ono uznane za nawiązane i można będzie rozpocząć przesyłanie danych.
Wymiana danych
Po nawiązaniu połączenia dalsze korzystanie z interfejsu API jest symetryczne, więc nie ma już rozróżnienia między reklamodawcą a odkrywcą.
Obie strony mogą teraz wymieniać dane. Obsługiwane są 3 typy ładunków:
- Bajt: tablice bajtów ograniczone do 32 tys. bajtów; nadają się do wysyłania takich informacji jak metadane czy wiadomości sterujące.
- Pliki: pliki o dowolnym rozmiarze, które są przesyłane z aplikacji do interfejsu sieciowego z minimalnym kopiowaniem między granicami procesów.
- Strumień: strumień danych generowany na bieżąco, np. w przypadku nagranego dźwięku lub filmu, którego ostateczny rozmiar nie jest znany z góry.
Odbiorcy będą otrzymywać powiadomienia o nowych danych przychodzących oraz o postępach, anulowaniach i błędach.
Nawiązywane połączenia są dwukierunkowe, co oznacza, że reklamodawcy i osoby wyszukujące mogą jednocześnie wysyłać i odbierać dane.
Zbieranie danych
Podczas korzystania z pakietu SDK Usług Google Play do obsługi urządzeń w pobliżu zbierane są statystyki użytkowania, które pomagają ulepszać działanie tej usługi.
- Dane o skuteczności: podczas skanowania i łączenia się z urządzeniami za pomocą pakietu Nearby SDK zbierane są dane o opóźnieniu wykrywania i nawiązywania połączenia, niezawodności i przepustowości.
- Informacje o urządzeniu: zbieramy model urządzenia, kraj, wersję kompilacji i nazwę pakietu aplikacji, a następnie łączymy je z danymi o wydajności, aby identyfikować segmenty regionalne i zależne od urządzenia.
Użytkownicy mogą zezwolić na to gromadzenie danych lub mu odmówić, wybierając kolejno Ustawienia > Google > Użytkowanie i diagnostyka.