Dołącz do naszej listy adresowej, aby być na bieżąco z ogłoszeniami i ogłoszeniami dotyczącymi funkcji W pobliżu.

Opis

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Nearby Connections to interfejs sieci peer-to-peer służący do komunikacji w sieci w czasie rzeczywistym, bez względu na połączenie sieciowe. Interfejs API znajduje się w pakiecie com.google.android.gms.nearby.connection.

Przykładowe zastosowania:

  • Współdzielona tablica: zapisuj pomysły innym uczestnikom w pobliżu.
  • Lokalne gry wieloosobowe: możesz skonfigurować grę wieloosobową i zaprosić do niej innych użytkowników.
  • Gry na wielu urządzeniach: 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: szybkie udostępnianie zdjęć, filmów i innych danych bez konieczności połączenia się z siecią.

Wprowadzenie

Połączenia w pobliżu umożliwiają reklamy, wykrywanie i połączenia między urządzeniami w pobliżu w pełni offline i peer-to-peer. Połączenia między urządzeniami mają dużą przepustowość, małe opóźnienie i pełne szyfrowanie, co zapewnia szybkie i bezpieczne przesyłanie danych.

Głównym celem tego interfejsu API jest zapewnienie platformy, która jest prosta, niezawodna i wydajna. Co ważne, interfejs API korzysta z kombinacji hotspotów Bluetooth, BLE i Wi-Fi, wykorzystując ich mocne strony, a jednocześnie omija ich mocne strony. Pozwala to łatwo odizolować funkcje Bluetooth i Wi-Fi w różnych wersjach systemu operacyjnego Android i sprzęcie. Dzięki temu programiści mogą skupić się na funkcjach, które są ważne dla użytkowników.

Dla wygody użytkowników nie wyświetla się prośba o włączenie Bluetootha lub Wi-Fi. Połączenia w pobliżu włączają te funkcje w razie potrzeby, a po zakończeniu przywracania urządzenia do poprzedniego stanu, zapewniając płynność działania.

Przegląd interfejsów API

Korzystanie z interfejsu API należy do 2 etapów: przed połączeniem i po połączeniu.

Na etapie poprzedzającym połączenie 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 z Discovery do reklamodawcy inicjuje symetryczny proces uwierzytelniania, który powoduje, że obie strony niezależnie akceptują (lub odrzucają) prośbę o połączenie.

Po zaakceptowaniu prośby o połączenie przez obie strony uznaje się, że połączenie zostało nawiązane, a urządzenia przechodzą fazę po nawiązaniu połączenia, w której obie strony mogą wymieniać dane.

Reklama i odkrywanie

Reklamodawcy najpierw wywołują tag startAdvertising(), przekazując wartość ConnectionLifecycleCallback, która jest powiadamiana za każdym razem, gdy twórca strony chce nawiązać połączenie przez wywołanie zwrotne onConnectionInitiated().

Wykrywanie rozpoczyna się od wywołania metody startDiscovery(). Przekazuje ona EndpointDiscoveryCallback, który otrzymuje powiadomienie za każdym razem, gdy znajdziemy pobliskiego reklamodawcę za pomocą wywołania zwrotnego onEndpointFound().

Nawiązywanie połączeń

Prezenter, który chce się połączyć z reklamodawcą w pobliżu, wywołuje metodę requestConnection() i przekazuje ConnectionLifecycleCallback.

Obie strony są następnie powiadamiane o procesie inicjowania połączenia za pomocą wywołania zwrotnego ConnectionLifecycleCallback.onConnectionInitiated(). Obie strony muszą teraz zdecydować, czy zaakceptować, czy odrzucić połączenie przez wywołanie odpowiednio acceptConnection() lub rejectConnection().

W tym momencie aplikacje mogą też poprosić użytkownika o zaakceptowanie połączenia. Więcej informacji znajdziesz w artykule Uwierzytelnianie połączenia.

Gdy obie strony odpowiedzą, każda strona otrzyma powiadomienie o wyniku w wywołaniu zwrotnym ConnectionLifecycleCallback.onConnectionResult(). Jeśli obie strony zaakceptują połączenie, tag ConnectionResolution podany w wywołaniu zwrotnym zakończy się powodzeniem, połączenie zostanie uznane i rozpocznie się przesyłanie ładunków.

Wymiana danych

Po nawiązaniu połączenia kolejne użycie interfejsu API jest symetryczne, więc nie ma już podziału na reklamodawcę i odkrywającego.

Obie strony mogą teraz wymieniać dane jako obiekty Payload. Dostępne są 3 typy obsługiwanych ładunków:

  • BYTES Komplaty bajtów ograniczone do 32 tys.. Świetnie sprawdzają się przy wysyłaniu takich metadanych jak metadane czy wiadomości kontrolne.
  • FILEPliki o dowolnym rozmiarze. Są one przesyłane z aplikacji do interfejsu sieciowego przy minimalnym stopniu kopiowania danych przez proces.
  • STREAMStrumień danych generowany na bieżąco, tak jak w przypadku nagrań audio/wideo, bez znanego końcowego rozmiaru.

Nadawcy używają metody sendPayload() do wysyłania ładunku. Ta metoda może zostać wywołana wiele razy, ale ponieważ gwarantujemy dostawę w ramach zamówienia, drugi ładunek zostanie umieszczony w kolejce do wysłania aż do ukończenia pierwszego ładunku.

Odbiorcy mogą oczekiwać wywołania wywołania PayloadCallback.onPayloadReceived() po otrzymaniu nowego ładunku.

Nadawcy i odbiorcy mogą spodziewać się wywołania zwrotnego PayloadCallback.onPayloadTransferUpdate() w celu zaktualizowania odpowiednio informacji o postępach ładunków wychodzących i przychodzących.

Nawiązywane połączenia to pełne dupleksy, co oznacza, że Reklamodawcy i Odkrywcy mogą jednocześnie wysyłać i odbierać ładunki.

Rozłączam

Na koniec disconnectFromEndpoint() rozłącza się z konkretnym zdalnym punktem końcowym, a stopAllEndpoints() rozłącza się ze wszystkimi połączonymi punktami końcowymi. Zdalne punkty końcowe są powiadamiane o rozłączeniu za pomocą ConnectionLifecycleCallback.onDisconnected().

Zbieranie danych

Gdy korzystasz z pakietu SDK SDK w pobliżu, zbierane są statystyki użytkowania, aby zwiększyć wygodę użytkowników.

  • Wskaźniki wydajności: podczas wykrywania i łączenia urządzeń za pomocą SDK w pobliżu zbierane są informacje o czasie wykrywania i połączenia, 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 w celu identyfikowania wycinków z regionu i urządzenia.

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