Reklamuj i odkrywaj

Gdy użytkownik udzieli już wszystkich wymaganych uprawnień, Twoja aplikacja może zacząć się reklamować i znajdować urządzenia w pobliżu.

Najpierw wybierz Strategy do swojego przypadku użycia. Wybrana wartość Strategy określa topologię połączenia dla Twojej aplikacji (1 reklamodawca w przypadku N odkrywców lub M reklamodawcy w przypadku N osób).

Na urządzeniach, które będą się reklamować, wywołaj funkcję startAdvertising() z odpowiednim identyfikatorem Strategy i parametrem serviceId, który identyfikuje Twoją aplikację.

Na urządzeniach, które pozwalają wykrywać reklamodawców w pobliżu, wywołaj funkcję startDiscovery() za pomocą tych samych wartości Strategy i serviceId.

Wartość serviceId musi jednoznacznie identyfikować aplikację. Sprawdzoną metodą jest użycie nazwy pakietu aplikacji (np. com.google.example.myapp).

Poniższy przykład pokazuje, jak reklamować:

private void startAdvertising() {
  AdvertisingOptions advertisingOptions =
      new AdvertisingOptions.Builder().setStrategy(STRATEGY).build();
  Nearby.getConnectionsClient(context)
      .startAdvertising(
          getLocalUserName(), SERVICE_ID, connectionLifecycleCallback, advertisingOptions)
      .addOnSuccessListener(
          (Void unused) -> {
            // We're advertising!
          })
      .addOnFailureListener(
          (Exception e) -> {
            // We were unable to start advertising.
          });
}

Parametr ConnectionLifecycleCallback to wywołanie zwrotne, które jest wywoływane w przypadku znalezienia żądania powiązania z reklamodawcą. Szczegółowe informacje o definiowaniu tego wywołania zwrotnego znajdziesz w artykule Zarządzanie połączeniami.

Ten przykład pokazuje, jak znaleźć:

private void startDiscovery() {
  DiscoveryOptions discoveryOptions =
      new DiscoveryOptions.Builder().setStrategy(STRATEGY).build();
  Nearby.getConnectionsClient(context)
      .startDiscovery(SERVICE_ID, endpointDiscoveryCallback, discoveryOptions)
      .addOnSuccessListener(
          (Void unused) -> {
            // We're discovering!
          })
      .addOnFailureListener(
          (Exception e) -> {
            // We're unable to start discovering.
          });
}

Parametr EndpointDiscoveryCallback to wywołanie zwrotne, które jest wywoływane w przypadku wykrycia lub utraty reklamodawców znajdujących się w pobliżu. Szczegółowe informacje o definiowaniu tego wywołania zwrotnego znajdziesz w artykule Zarządzanie połączeniami.

Zadzwoń pod numer stopAdvertising(), jeśli nie chcesz już reklamować, lub stopDiscovery(), gdy nie będzie to konieczne.