Как только пользователь предоставил все необходимые разрешения, ваше приложение может начать рекламировать и обнаруживать устройства поблизости.
Сначала выберите 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 — это обратный вызов, который будет вызываться, когда обнаруживатели запрашивают подключение к рекламодателю. Подробную информацию об определении этого обратного вызова см. в разделе «Управление соединениями» .
В следующем примере показано, как обнаружить:
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 — это обратный вызов, который будет вызываться при обнаружении или потере ближайших рекламодателей. Подробную информацию об определении этого обратного вызова см. в разделе «Управление соединениями» .
Вызовите stopAdvertising() , когда вам больше не нужно рекламировать, и stopDiscovery() , когда вам больше не нужно проводить поиск.