在用户授予所有必需的权限后,您的应用就可以开始 通告和发现,以寻找附近的设备。
首先,为您的用例选择一个 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()。