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.