Fai pubblicità e scopri

Dopo che l'utente avrà concesso tutte le autorizzazioni richieste, la tua app potrà iniziare a fare pubblicità e scoprire i contenuti per trovare dispositivi nelle vicinanze.

Innanzitutto, scegli un Strategy per il tuo caso d'uso. L'Strategy selezionato determina la topologia di connessione per la tua app (un inserzionista per N scoprire, o M inserzionisti per N scopritori).

Sui dispositivi che pubblicizzeranno l'annuncio, chiama startAdvertising() con l'oggetto Strategy e un parametro serviceId che identifica la tua app.

Sui dispositivi che rilevano inserzionisti nelle vicinanze, chiama startDiscovery() con gli stessi Strategy e serviceId.

Il valore serviceId deve identificare in modo univoco la tua app. Come best practice, utilizza il nome del pacchetto dell'app (ad esempio com.google.example.myapp).

L'esempio seguente mostra come fare pubblicità:

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

Il parametro ConnectionLifecycleCallback è il callback che viene richiamato quando gli utenti richiedono di connettersi all'inserzionista. Per i dettagli sulla definizione di questo callback, consulta Gestisci le connessioni.

L'esempio seguente mostra come effettuare la scoperta:

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

Il parametro EndpointDiscoveryCallback è il callback che viene richiamato quando vengono rilevati o persi gli inserzionisti nelle vicinanze. Per i dettagli sulla definizione di questo callback, consulta Gestisci le connessioni.

Chiama il numero stopAdvertising() quando non devi più fare pubblicità e stopDiscovery() quando non è più necessario scoprirlo.