在用户授予所有必需的权限后,您的应用就可以开始 通告和发现,以寻找附近的设备。
首先,为您的用例选择一个 Strategy
。
您选择的 Strategy
决定了应用的连接拓扑(一个
一个广告客户到 N 个发现者,或者 M 个广告客户到 N 个发现者)。
在将要通告的设备上,使用所需的startAdvertising()
Strategy
和用于标识应用的 serviceId
参数。
在会发现附近广告客户的设备上,使用以下电话号码致电 startDiscovery()
:
相同的 Strategy
和 serviceId
。
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
参数是将调用的回调
当发现者请求与广告客户建立关联时请参阅管理
“Connections”可详细了解
定义此回调。
以下示例展示了如何发现:
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
参数是将调用的回调
当发现或丢失附近的广告客户时。请参阅管理
“Connections”可详细了解
定义此回调。
在不再需要广告时调用 stopAdvertising()
;
当您不再需要探索时,不妨stopDiscovery()
。