Połączenia z urządzeniami 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 wymianę danych w czasie rzeczywistym, niezależnie od połączenia sieciowego.
Przykładowe przypadki użycia:
- Współdzielona tablica: zapisuj pomysły wraz z uczestnikami znajdującymi się w pobliżu na współdzielonej wirtualnej tablicy.
- Lokalna gra wieloosobowa: skonfiguruj grę wieloosobową i zaproś do niej innych użytkowników w pobliżu.
- Gry na wiele urządzeń: używaj telefonu lub tabletu jako kontrolera do gier, aby grać w gry wyświetlane na urządzeniu z Androidem z dużym ekranem, takim jak Android TV.
- Przesyłanie plików offline: udostępniaj zdjęcia, filmy i inne typy danych szybko i bez konieczności połączenia sieciowego.
Wprowadzenie
Połączenia z urządzeniami w pobliżu umożliwiają rozgłaszanie, wykrywanie i łączenie urządzeń w pobliżu w trybie peer-to-peer, całkowicie offline. Połączenia między urządzeniami mają dużą przepustowość, niskie opóźnienia i 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 wykorzystuje kombinację technologii Bluetooth, BLE i Wi-Fi, wykorzystując mocne strony każdej z nich i jednocześnie omijając ich słabe strony. Dzięki temu można uniknąć problemów z Bluetooth i Wi-Fi na różnych platformach i wersjach systemów operacyjnych, co pozwala deweloperom 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 odkrywcy odkrywają reklamodawców w pobliżu i wysyłają prośby o połączenie. Prośba o połączenie wysłana przez wykrywacza 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 zostanie uznane za nawiązane, a urządzenia przejdą do fazy po połączeniu, podczas której obie strony mogą wymieniać dane.
Reklamy i odkrywanie
Reklamodawcy będą widoczni dla innych urządzeń wykrywających, a urządzenia wykrywające będą powiadamiane o znalezieniu nowego reklamodawcy lub utracie połączenia z nim.
Nawiązywanie połączeń
Gdy wykrywający chce połączyć się z reklamodawcą w pobliżu, może poprosić o połączenie.
Obie strony zostaną powiadomione o procesie inicjowania połączenia i będą mogły je zaakceptować lub odrzucić.
Gdy obie strony odpowiedzą, każda z nich otrzyma powiadomienie o wyniku. Jeśli obie strony zaakceptowały połączenie, uznaje się je za nawiązane i można 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 wykrywcą.
Obie strony mogą teraz wymieniać dane. Obsługiwane są 3 typy ładunków:
- Bajty: tablice bajtów ograniczone do 32 kB. Są przydatne do wysyłania takich elementów jak metadane czy komunikaty sterujące.
- Plik: pliki o dowolnym rozmiarze; są przesyłane z aplikacji do interfejsu sieciowego z minimalnym kopiowaniem między procesami.
- Strumień: strumień danych generowany na bieżąco, jak w przypadku nagrywanego dźwięku lub obrazu, którego ostateczny rozmiar nie jest znany z góry.
Odbiorcy będą powiadamiani o nowych danych przychodzących oraz o postępach, anulowaniu lub błędach.
Nawiązane połączenia są pełnodupleksowe, co oznacza, że reklamodawcy i wykrywający mogą jednocześnie wysyłać i odbierać dane.
Zbieranie danych
Gdy korzystasz z pakietu SDK usług Google Play dla urządzeń w pobliżu, zbierane są statystyki użytkowania, aby ulepszać działanie usługi.
- Wskaźniki skuteczności: podczas wykrywania urządzeń i łączenia się z nimi za pomocą pakietu SDK Nearby zbierane są dane o opóźnieniu, niezawodności i przepustowości.
- Informacje o urządzeniu: model urządzenia, kraj, wersja kompilacji i nazwa pakietu aplikacji są zbierane i powiązane ze wskaźnikami wydajności, aby można było identyfikować fragmenty danych dotyczące regionu i urządzenia.
Użytkownicy mogą zezwolić na zbieranie tych danych lub je zablokować, wybierając kolejno Ustawienia > Google > Użytkowanie i diagnostyka.