廣告與探索

使用者授予所有必要權限後,應用程式即可開始 廣播和探索,尋找附近的裝置。

首先,請根據您的用途選擇 Strategy。 您選取的 Strategy 會決定應用程式的連線拓撲 (單一 廣告客戶對 N 位探索者)。

在要放送廣告的裝置上,使用想要放送廣告的裝置呼叫 startAdvertising() Strategy 和用於識別應用程式的 serviceId 參數。

在可搜尋附近廣告主的裝置上,呼叫 startDiscovery() 並填入 相同的 StrategyserviceId

serviceId 值必須明確識別應用程式。最佳做法是 應用程式的套件名稱 (例如 com.google.example.myapp)。

以下範例說明如何宣傳:

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

ConnectionLifecycleCallback 參數是系統將叫用的回呼 當探索者要求與廣告客戶建立關係時。詳情請參閱管理 連結: 定義這個回呼。

以下範例說明如何探索:

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

EndpointDiscoveryCallback 參數是系統將叫用的回呼 使用者找到或遺失附近的廣告主時。詳情請參閱管理 連結: 定義這個回呼。

不再需要宣傳時,請呼叫 stopAdvertising()。 再也不必費心探索。stopDiscovery()