Pregunta

En la continuación con mi pregunta anterior, se le solicitó aquí , ya no estoy siguiendo el enfoque de la creación de una sola región para todas las balizas.Ahora estoy creando regiones en tiempo de ejecución.Yo llegué primero. A continuación se muestra el código que estoy tratando de 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 
  }

¿Es correcto el enfoque mencionado anteriormente?El problema es, a veces, el mismo baliza está entrando dos veces en onenterederedregion () , sin salir.He intentado jugar con el intervalo de escaneo para la exploración de primer plano y de fondo, pero las cosas no están sincronizadas.Estoy usando Simotote Beacon SDK para Android.

¿Fue útil?

Solución

El problema podría ser muy simple.Su muestra de código está reutilizando el mismo identificador de la región "RegionID" para todas las regiones.Por favor use diferentes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top