Как только пользователь предоставил все необходимые разрешения, ваше приложение может начать рекламировать и обнаруживать устройства поблизости.
Сначала выберите 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()
, когда вам больше не нужно проводить поиск.