@Override
public void onBeaconServiceConnect() {
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
for (Beacon beacon : beacons) {
Beacon.setHardwareEqualityEnforced(true);
Log.i("MainActivity", "I see a beacon that is about "+ beacon.getDistance() +" meters away. ");
}
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) { }
}我试图在我的信标上循环并得到所有信标的距离,但我想跟踪每个信标的距离,我想知道我和信标之间的最大距离和最小距离,我想说的是,例如,如果我和beacon1之间的距离小于我和beacon2之间的距离,或者如果我和beacon2之间的距离大于我和beacon3之间的距离,我想问的是,例如,如果我和beacon2之间的距离小于我和beacon3之间的距离,
我知道我可以通过mac地址跟踪每个信标,但我如何才能掌握并知道我与所有信标之间的距离。
我想做的是“如果mac地址为1的信标".getDistance() >”mac地址为2的信标“.getDistance(){做点什么}
我怎样才能保持信标的稳定呢?
发布于 2019-03-22 09:01:38
我经常在应用程序中使用BeaconTracker单例类,在这些应用程序中,我希望跟踪到每个信标的最后一次看到的距离。你可以在这里看到一个这样的例子:
您可以通过从didRangeBeaconsInRegion(...)调用该类来使用它类似这样的回调:
BeaconTracker.getInstance(context).updateTrackedBeacons(beacons);然后,您可以访问跟踪的信标,以便与以下内容进行距离比较:
List<TrackedBeacon> trackedBeacons = BeaconTracker.getInstance(context).getTrackedBeacons();https://stackoverflow.com/questions/55290697
复制相似问题