Monitoramento de beacon Android durante o alcance
-
20-12-2019 - |
Pergunta
Em continuação à minha pergunta anterior feita aqui, não estou mais seguindo a abordagem de criar uma região única para todos os beacons.Agora estou criando regiões em tempo de execução.Eu fiz a variação primeiro.Abaixo está o código que estou tentando implementar.
public void onBeaconsDiscovered(Region region, final List<Beacon> beacons) {
for(int i =0;i<beacons.size();i++)
{
Region r = new Region("RegionID", beacons.get(i).getProximityUUID(), beacons.get(i).getMajor(), beacons.get(i).getMinor());
try {
beaconManager.startMonitoring(r);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
public void onEnteredRegion(Region arg0, List<Beacon> arg1) {
//Log Data in DB
}
public void onExitedRegion(Region region) {
//Log Data in DB
}
A abordagem mencionada acima está correta?O problema é que, às vezes, o mesmo farol entra duas vezes em onEnteredRegion(), sem sair.Tentei brincar com o intervalo de varredura para varredura de primeiro e segundo plano, mas as coisas não estão sincronizadas.estou usando Estimativa farol sdk para android.
Solução
O problema pode ser muito simples.Seu exemplo de código está reutilizando o mesmo identificador de região "RegionID"
para todas as regiões.Por favor, use diferentes.