Quảng cáo và khám phá

Sau khi người dùng cấp tất cả các quyền cần thiết, ứng dụng của bạn có thể bắt đầu quảng cáo và khám phá để tìm các thiết bị ở gần.

Trước tiên, hãy chọn Strategy cho trường hợp sử dụng của bạn. Strategy bạn chọn sẽ xác định cấu trúc liên kết kết nối cho ứng dụng của bạn (một nhà quảng cáo cho N người khám phá hoặc M nhà quảng cáo cho N người khám phá).

Trên các thiết bị sẽ quảng cáo, hãy gọi startAdvertising() kèm theo Strategy mong muốn và tham số serviceId để nhận dạng ứng dụng của bạn.

Trên các thiết bị sẽ khám phá các nhà quảng cáo lân cận, hãy gọi startDiscovery() với cùng StrategyserviceId.

Giá trị serviceId phải xác định duy nhất ứng dụng của bạn. Tốt nhất là bạn nên sử dụng tên gói của ứng dụng (ví dụ: com.google.example.myapp).

Ví dụ sau cho thấy cách quảng cáo:

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

Thông số ConnectionLifecycleCallback là lệnh gọi lại sẽ được gọi khi người khám phá yêu cầu kết nối với nhà quảng cáo. Xem phần Quản lý kết nối để biết thông tin chi tiết về cách xác định lệnh gọi lại này.

Ví dụ sau cho thấy cách khám phá:

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

Thông số EndpointDiscoveryCallback là lệnh gọi lại sẽ được gọi khi nhà quảng cáo ở gần đó được phát hiện hoặc bị mất. Xem phần Quản lý kết nối để biết thông tin chi tiết về cách xác định lệnh gọi lại này.

Gọi stopAdvertising() khi bạn không cần quảng cáo nữa và stopDiscovery() khi không cần khám phá nữa.