¿Cómo detectar múltiples balizas usando la biblioteca de Altbeacon android?

Estoy utilizando la aplicación de ejemplo de AltBeacon en mi dispositivo Android: la aplicación de ejemplo proporcionada por altbeacon.org está aquí: https://github.com/AltBeacon/android-beacon-library-reference

Sin embargo, la aplicación cuando se inicia es detectar y mostrar sólo un faro. Tengo cerca de 5 balizas cerca de mi dispositivo Android. ¿Cómo puedo detectar todas las balizas?

En RangingActivity.java, me di cuenta de este método que se está llamando cuando un faro viene a la vista:

public void onBeaconServiceConnect() { beaconManager.setRangeNotifier(new RangeNotifier() { @Override public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { if (beacons.size() > 0) { EditText editText = (EditText) RangingActivity.this.findViewById(R.id.rangingText); Beacon firstBeacon = beacons.iterator().next(); logToDisplay("The first beacon " + firstBeacon.toString() + " is about " + firstBeacon.getDistance() + " meters away."); } } } 

Modifiqué el iterador para leer de la colección en un bucle de tiempo como sigue:

  Beacon firstBeacon; while(beacons.iterator().hasNext()){ firstBeacon = beacons.iterator().next(); logToDisplay("The first beacon " + firstBeacon.toString() + " is about " + firstBeacon.getDistance() + " meters away."); } 

Sin embargo, la aplicación se bloquea con esta modificación.

Mis preguntas:

(1) ¿Cómo puedo mostrar todas las balizas que están cerca de mi dispositivo Android?

(2) ¿Cómo puedo detectar balizas que salen de la región?

One Solution collect form web for “¿Cómo detectar múltiples balizas usando la biblioteca de Altbeacon android?”

Para 1. Creo que necesitas usar un bucle For. Me gusta esto.

 for (Beacon beacon : beacons) { logToDisplay("The beacon " + beacon.toString() + " is about " + beacon.getDistance() + " meters away."); } 

Para 2. Tenía problemas para detectar eso, pero podría ser un largo tiempo de espera. Así que sea muy paciente. Creo que el código en la actividad de supervisión puede ser alterado para mostrar un mensaje para eso. O puede revisar el logcat desde un dispositivo. Un simple logToDisplay se puede utilizar dentro de la sección didExitRegion de BeaconReferenceApplication.

 public void didExitRegion(Region region) { if (monitoringActivity != null) { monitoringActivity.logToDisplay("I no longer see a beacon in the "+region.getUniqueId()); } } 
  • Cómo obtener el Id único de un Beacon usando Estimate SDK en Android
  • Cómo obtener balizas visibles desde el método RegionBootstrap AltBeacon
  • IBeaconGap Cordova Plugin basado en RadiusNetwork Android Library
  • ¿Podemos convertir nuestro dispositivo Android en un faro?
  • Cómo identificar Eddystone URL y uid?
  • ¿Por qué isMultipleAdvertisementSupported () devuelve false, cuando getBluetoothLeAdvertiser devuelve un objeto?
  • Problemas con el ejemplo de Kontakt.io Beacon
  • ¿Cómo agregar más de un faro en una sola región?
  • ¿Qué es exactamente txPower para Bluetooth LE y cómo se utiliza?
  • Android Estimote sdk no es capaz de escanear otros beacons que los estimote
  • ¿Funciona BluetoothLeAdvertiser en un Nexus 5 con Android 5.0?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.