Diffuser des annonces et découvrir

Une fois que l'utilisateur a accordé toutes les autorisations requises, votre application peut commencer à annoncer et à découvrir afin de trouver les appareils à proximité.

Commencez par choisir une Strategy pour votre cas d'utilisation. Le Strategy que vous sélectionnez détermine la topologie de connexion de votre application (un annonceur pour N découverteurs ou M annonceurs pour N découverteurs).

Sur les appareils qui annonceront, appelez startAdvertising() avec le Strategy souhaité et un paramètre serviceId qui identifie votre application.

Sur les appareils qui détectent les annonceurs à proximité, appelez startDiscovery() avec les mêmes valeurs Strategy et serviceId.

La valeur serviceId doit identifier votre application de manière unique. Il est recommandé d'utiliser le nom de package de votre application (par exemple, com.google.example.myapp).

L'exemple suivant montre comment diffuser des annonces:

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

Le paramètre ConnectionLifecycleCallback est le rappel qui est invoqué lorsque les utilisateurs demandent à se connecter à l'annonceur. Consultez Gérer les connexions pour savoir comment définir ce rappel.

L'exemple suivant montre comment découvrir:

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

Le paramètre EndpointDiscoveryCallback est le rappel qui est invoqué lorsque des annonceurs à proximité sont découverts ou perdus. Consultez Gérer les connexions pour savoir comment définir ce rappel.

Appelez stopAdvertising() lorsqu'il n'est plus nécessaire de diffuser des annonces, et stopDiscovery() lorsque vous n'avez plus besoin de les identifier.