Opis

Połączenia w pobliżu to peer-to-peer API – interfejs typu peer-to-peer Networking API, który umożliwia aplikacjom łatwe znajdowanie, łączenie się z urządzeniami w pobliżu i wymianę danych z nimi w czasie rzeczywistym, niezależnie od połączenia sieciowego.

Przykładowe zastosowania:

  • Współdzielona tablica: zapisywanie pomysłów z uczestnikami w pobliżu na wspólnej wirtualnej tablicy.
  • Lokalne gry wieloosobowe: skonfiguruj grę wieloosobową i zaproś do niej inne osoby w pobliżu.
  • Gry na wiele urządzeń: jako kontroler do gier możesz używać telefonu lub tabletu, aby grać w gry wyświetlane na pobliskim dużym urządzeniu z Androidem, np. na Androidzie TV.
  • Przesyłanie plików offline: szybko udostępniaj zdjęcia, filmy i inne dane bez konieczności łączenia się z siecią.

Wprowadzenie

Połączenia w pobliżu umożliwiają reklamę, wykrywanie i łączenie się między urządzeniami w pobliżu w trybie offline metodą peer-to-peer. Połączenia między urządzeniami wymagają dużej przepustowości, małego opóźnienia i pełnego szyfrowania, co pozwala na szybkie i bezpieczne przesyłanie danych.

Głównym celem tego interfejsu API jest zapewnienie platformy, która jest prosta, niezawodna i wydajna. Interfejsy API korzystają z kombinacji technologii Bluetooth, BLE i Wi-Fi, wykorzystując zalety każdej z tych słabości. Pozwala to skutecznie wyodrębnić luki w dostępie do Bluetooth i Wi-Fi na różnych platformach i w różnych wersjach systemu operacyjnego, dzięki czemu deweloperzy mogą skupić się na funkcjach, które są ważne dla ich użytkowników.

Przegląd interfejsów API

Wykorzystanie interfejsu API składa się z 2 etapów: przed połączeniem i po nim.

Na etapie poprzedzającym połączenie reklamodawcy wyświetlają reklamy samych reklamodawców, a odkrywający znajdują się w pobliżu i wysyłają prośby o połączenie. Prośbę o połączenie z Discovery do reklamodawcy rozpoczyna symetryczny proces uwierzytelniania, który powoduje, że obie strony akceptują (lub odrzucają) żądanie połączenia.

Gdy obie strony zaakceptują prośbę o połączenie, uznaje się, że połączenie zostało nawiązane, a urządzenia przechodzą na etap po nawiązaniu połączenia, w którym obie strony mogą wymieniać dane.

Reklama i odkrywanie

Reklamodawcy odkrywają nowych reklamodawców i utracą ich dostęp.

Nawiązuję kontakty

Gdy odkrywca chce nawiązać połączenie 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ć.

Każda ze stron otrzyma powiadomienie o wyniku. Jeśli połączenie zostanie zaakceptowane przez obie strony, zostanie ono uznane za nawiązane i rozpocznie się przenoszenie 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ą i wydawcą.

Obie strony mogą teraz wymieniać dane. Dostępne są 3 rodzaje ładunków:

  • bajty: tablice bajtów ograniczone do 32k
  • Plik: pliki dowolnego rozmiaru; są one przenoszone z aplikacji do interfejsu sieciowego przy minimalnym kopiowaniem przez granice procesów.
  • Strumień: strumień danych generowanych na bieżąco, tak jak w przypadku nagranych plików audio i wideo, bez określonego wcześniej rozmiaru.

Odbiorcy będą powiadamiani o nowych danych oraz o postępach, anulowaniach i nieudanych połączeniach.

Nawiązywane połączenia są pełne dupleksem, co oznacza, że reklamodawcy i wykrywcy mogą jednocześnie wysyłać i odbierać dane.

Zbieranie danych

Podczas używania pakietu SDK Usług w pobliżu zbieramy dane o korzystaniu, aby zwiększyć wygodę użytkowników.

  • Wskaźniki wydajności: podczas wyszukiwania i łączenia się z urządzeniami za pomocą pakietu SDK w pobliżu są zbierane informacje o opóźnieniach, czasie oczekiwania, niezawodności i przepustowości.
  • Informacje o urządzeniu: model urządzenia, kraj, wersja kompilacji i nazwa pakietu aplikacji są zbierane i powiązane z danymi o wydajności, aby zidentyfikować wycinki regionalne i związane z urządzeniem.

Użytkownicy mogą akceptować lub odrzucać tę kolekcję, klikając Ustawienia > Google > Użycie i diagnostyka.