刊登廣告,發現

使用者授予所有必要權限後,應用程式就能開始放送廣告並探索鄰近裝置,進而找出附近的裝置。

首先,請為您的用途選擇 Strategy。您選取的 Strategy 會決定應用程式的連線拓撲 (一個廣告客戶需要 N 個發現工具,或從 N 廣告客戶到 N 個搜尋者)。

在要宣傳的裝置上,呼叫 startAdvertising() 和需要的 Strategy,以及用於識別應用程式的 serviceId 參數。

在發掘附近廣告客戶的裝置上,呼叫相同 StrategyserviceIdstartDiscovery()

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()