Depois que o usuário concede todas as permissões necessárias, seu app pode começar a anunciar e descobrir para encontrar dispositivos próximos.
Primeiro, escolha um Strategy
para seu caso de uso.
A Strategy
selecionada determina a topologia de conexão do app. Ou seja, de
um anunciante a N descobertos ou M anunciantes a N.
Em dispositivos que vão anunciar, chame startAdvertising()
com o Strategy
e um parâmetro serviceId
que identifiquem seu app.
Em dispositivos que descobrirão anunciantes próximos, chame startDiscovery()
com
os mesmos Strategy
e serviceId
.
O valor serviceId
precisa identificar seu app de maneira exclusiva. 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 descobertos solicitarem a conexão com o anunciante. Consulte Gerenciar conexões para ver detalhes sobre como definir 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 próximos forem descobertos ou perdidos. Consulte Gerenciar conexões para ver detalhes sobre como definir esse callback.
Chame stopAdvertising()
quando não precisar mais anunciar e stopDiscovery()
quando não precisar mais descobrir.