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ị lân cận.

Trước tiên, hãy chọn Strategy cho trường hợp sử dụng của bạn. Strategy mà 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 sang N người khám phá hoặc M nhà quảng cáo sang N người khám phá).

Trên các thiết bị sẽ quảng cáo, hãy gọi startAdvertising() bằng Strategy và tham số serviceId giúp nhận dạng ứng dụng của bạn.

Trên các thiết bị sẽ tìm thấy các nhà quảng cáo lân cận, hãy gọi startDiscovery() bằng cùng một StrategyserviceId.

Giá trị serviceId phải xác định riêng biệt ứng dụng của bạn. Phương pháp hay nhất là hãy sử dụng tên gói của ứng dụng (ví dụ: com.google.example.myapp).

Ví dụ sau đây trình bà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.
          });
}

Tham 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ề xác định lệnh gọi lại này.

Ví dụ sau đây cho biết 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.
          });
}

Tham số EndpointDiscoveryCallback là lệnh gọi lại sẽ được gọi khi nhà quảng cáo lân cậ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ề xác định lệnh gọi lại này.

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