Publica anuncios y descubre

Una vez que el usuario otorga todos los permisos necesarios, tu app puede comenzar a hacer publicidad y descubrir para encontrar dispositivos cercanos.

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

En los dispositivos que publicarán anuncios, llama a startAdvertising() con la Strategy y un parámetro serviceId que identifica tu app.

En los dispositivos que descubrirá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 investigadores solicitan conectarse con el anunciante. Consulta Administrar Conexiones para obtener detalles sobre definir esta devolución de llamada.

En el siguiente ejemplo, se muestra cómo realizar el descubrimiento:

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 invocará cuando se descubren o se pierden anunciantes cercanos. Consulta Administrar Conexiones para obtener detalles sobre definir esta devolución de llamada.

Llama a stopAdvertising() cuando ya no necesites publicar anuncios. stopDiscovery() cuando ya no necesites descubrir contenido.