Я пытаюсь определить расстояние между моим устройством и маяками, которые я установил в своем офисе для своего стажерского проекта. Я все еще новичок в студиях Android и java. Маяки от Apple (iBeacon). Однако мне удалось найти только один из маяков, и результаты повторяются, хотя у меня включено пять маяков. Я загрузил приложение (сканер маяков), чтобы убедиться, что другие маяки включены. Я обнаружил, что маяки действительно включены, но мне удается найти только один маяк, и результат повторяется. Как мне остановить результат от повторять и показывать остальные маяки?
Ниже приведен код, который я получил из библиотеки Altbeacon, разработанной davidgyoung.
@Override
public void onBeaconServiceConnect() {
RangeNotifier rangeNotifier = new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
if (beacons.size() > 0) {
Log.d(TAG, "didRangeBeaconsInRegion called with beacon count: "+beacons.size());
Beacon firstBeacon = beacons.iterator().next();
logToDisplay("The first beacon " + firstBeacon.toString() + " is about " + String.format("%.2f", firstBeacon.getDistance()) + " meters away.");
}
}
};
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
beaconManager.addRangeNotifier(rangeNotifier);
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
beaconManager.addRangeNotifier(rangeNotifier);
} catch (RemoteException e) { }
}
private void logToDisplay(final String line) {
runOnUiThread(new Runnable() {
public void run() {
EditText editText = (EditText)RangingActivity.this.findViewById(R.id.rangingText);
editText.append(line+"\n");
}
});
}
Это результат моего устройства. https://i.stack.imgur.com/zJWs2.jpg