Depois que o usuário concede todas as permissões necessárias, seu aplicativo pode começar a anunciar e descobrir para encontrar dispositivos por perto.
Primeiro, escolha um Strategy
para seu caso de uso.
O Strategy
selecionado determina a topologia de conexão do app (um
anunciante para N descobridores ou M anunciantes para N descobridores).
Em dispositivos que irão anunciar, chame startAdvertising()
com o
Strategy
e um parâmetro serviceId
que identifica o app.
Em dispositivos que detectarão anunciantes nas proximidades, chame startDiscovery()
com
os mesmos Strategy
e serviceId
.
O valor serviceId
precisa identificar exclusivamente seu app. Como prática recomendada, use
o nome do pacote do seu app (por exemplo, com.google.example.myapp
).
O exemplo a seguir mostra como anunciar:
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. }); }
O parâmetro ConnectionLifecycleCallback
é o callback que será invocado
quando os descobertores
pedem para se conectar ao anunciante. Consulte Gerenciar
Conexões, para detalhes sobre
definindo esse callback.
O exemplo a seguir mostra como descobrir:
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. }); }
O parâmetro EndpointDiscoveryCallback
é o callback que será invocado
quando anunciantes por perto
são descobertos ou perdidos. Consulte Gerenciar
Conexões, para detalhes sobre
definindo esse callback.
Ligue para stopAdvertising()
quando não precisar mais anunciar e
stopDiscovery()
quando você não precisar mais fazer descobertas.