광고 및 발견

사용자가 필요한 모든 권한을 부여하면 앱에서 주변 기기를 찾을 수 있습니다.

먼저 사용 사례에 맞는 Strategy을 선택합니다. 선택한 Strategy에 따라 앱의 연결 토폴로지 (하나의 광고주를 N명의 발견자로, 또는 M명의 광고주를 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()입니다.