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 Strategy
và serviceId
.
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.