Опитвам се да открия разстоянието между моето устройство и маяците, които съм настроил в офиса си за моя стажантски проект. Все още съм съвсем нов в Android Studios и Java. Маяците са от apple (iBeacon). Въпреки това успях да намеря само един от маяците и резултатите се повтарят, въпреки че имам включени пет маяка. Изтеглих приложение (Beacon Scanner), за да се уверя, че другите маяци са включени. Разбрах, че маяците наистина са включени, но мога да намеря само един маяк и резултатът се повтаря. Как да спра резултата от повтаряне и показване на останалите маяци?
По-долу е кодът, който получих от библиотеката 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