Anuncia y descubre

Una vez que el usuario haya otorgado todos los permisos necesarios, la app puede comenzar a promocionarse y descubrirse para encontrar dispositivos cercanos.

Primero, elige una Strategy para tu caso de uso. El Strategy que selecciones determinará la topología de conexión de tu app (un anunciante para N descubrimientos o M anunciantes para N descubrimientos).

En los dispositivos que se anunciarán, llama a startAdvertising() con el Strategy deseado y un parámetro serviceId que identifique tu app.

En los dispositivos que detectarán anunciantes cercanos, llama a startDiscovery() con los mismos Strategy y serviceId.

El valor serviceId debe identificar tu app de forma única. Como práctica recomendada, usa el nombre del paquete de tu app (por ejemplo, com.google.example.myapp).

En el siguiente ejemplo, se muestra cómo publicar anuncios:

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

El parámetro ConnectionLifecycleCallback es la devolución de llamada que se invocará cuando los descubrimientos soliciten conectarse con el anunciante. Consulta Cómo administrar conexiones para obtener más información sobre la definición de esta devolución de llamada.

En el siguiente ejemplo, se muestra cómo descubrirlo:

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

El parámetro EndpointDiscoveryCallback es la devolución de llamada que se invoca cuando se descubren o pierden anunciantes cercanos. Consulta Cómo administrar conexiones para obtener más información sobre la definición de esta devolución de llamada.

Llama a stopAdvertising() cuando ya no necesites publicar anuncios y a stopDiscovery() cuando ya no necesites descubrirlo.

.