Рекламируйте и узнавайте

После того, как пользователь предоставил все необходимые разрешения, ваше приложение может начать рекламировать и обнаруживать устройства поблизости.

Сначала выберите Strategy для вашего варианта использования. Выбранная вами Strategy определяет топологию подключения для вашего приложения (один рекламодатель к N исследователям или M рекламодателей к N исследователям).

На устройствах, которые будут рекламировать, вызовите startAdvertising() с нужной Strategy и параметром serviceId , который идентифицирует ваше приложение.

На устройствах, которые будут обнаруживать ближайших рекламодателей, вызовите startDiscovery() с теми же Strategy и serviceId .

Значение serviceId должно однозначно идентифицировать ваше приложение. Рекомендуется использовать имя пакета вашего приложения (например, com.google.example.myapp ).

В следующем примере показано, как размещать рекламу:

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.
          });
}

Параметр ConnectionLifecycleCallback — это обратный вызов, который будет вызываться, когда первооткрыватели запрашивают подключение к рекламодателю. Подробную информацию об определении этого обратного вызова см. в разделе «Управление соединениями» .

В следующем примере показано, как обнаружить:

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.
          });
}

Параметр EndpointDiscoveryCallback — это обратный вызов, который будет вызываться при обнаружении или потере ближайших рекламодателей. Подробную информацию об определении этого обратного вызова см. в разделе «Управление соединениями» .

Вызовите stopAdvertising() , когда вам больше не нужно рекламировать, и stopDiscovery() когда вам больше не нужно обнаруживать.