Sto usando il campione app AltBeacon sul mio dispositivo Android - l'applicazione di esempio fornito da altbeacon.org è qui: https://github.com/AltBeacon/android-beacon-library-referenceCome rilevare più beacon utilizzando la libreria Android di Altbeacon?
Tuttavia, l'applicazione una volta lanciato è il rilevamento e la visualizzazione di un solo faro. Ho circa 5 beacon vicino al mio dispositivo Android. Come posso rilevare tutti i beacon?
In RangingActivity.java, ho notato questo metodo che viene chiamato quando un faro viene a 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.");
}
}
}
ho modificato l'iteratore per leggere dalla raccolta in un ciclo while come segue:
Beacon firstBeacon;
while(beacons.iterator().hasNext()){
firstBeacon = beacons.iterator().next();
logToDisplay("The first beacon " + firstBeacon.toString() + " is about " + firstBeacon.getDistance() + " meters away.");
}
Tuttavia, l'applicazione si arresta in modo anomalo con questa modifica.
Le mie domande:
(1) Come è possibile visualizzare tutti i fari che si trovano vicino al mio dispositivo Android?
(2) Come è possibile rilevare i beacon che si spostano fuori dalla regione?
È possibile aggiungere l'output logcat quando si è arrestato in modo anomalo alla domanda? – Joe