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.