gpt4 book ai didi

android - Altbeacon Android 库 - didRangeBeaconsInRegion

转载 作者:行者123 更新时间:2023-11-30 02:17:01 26 4
gpt4 key购买 nike

我正在测距信标,我的目标是处理 didRangeBeaconsInregion 中的信标集合,以便我获得集合中最接近的信标并在屏幕上显示与信标本身相关的字符串 (beacon1=red , beacon2=蓝色...)。我当前的 ibeacons 广告率是 1Hz(我还不能配置它们来增加它)。

我尝试了以下方法:

public void onBeaconServiceConnect() {
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {

Beacon closest = null;
double distance = 100.0;
logToDisplay(beacons.size() + " beacons in collection");

for (Beacon beacon : beacons) {

if (distance > beacon.getDistance()) {
closest = beacon;
distance = beacon.getDistance();
}

}

if (closest == null) {
logToDisplay(getCurrentTimeStamp() + " | Closest = null");
}
else if (closest.getId3().toInt() == 1) {
logToDisplay(getCurrentTimeStamp() + " | BLUE");
}
else if (closest.getId3().toInt() == 3) {
logToDisplay(getCurrentTimeStamp() + " | RED");
}
else if (closest.getId3().toInt() == 4) {
logToDisplay(getCurrentTimeStamp() + " | GREEN");
} // ... and so on with some more colours

}

});

try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) { }
}

据我所知,didRangeBeaconsinRegion 有一个信标集合,它是最后一秒看到的信标的缓冲区。由于我的信标只有 1Hz 的广告率,集合大小非常小,我无法获得一致的结果。

我认为有两种解决方案:

  1. 提高广告率(我还做不到)。
  2. 增加 didRangeBeaconsinRegion 方法的 1 秒周期,以便信标收集缓冲最近 5 秒内看到的信标(例如)。

这有可能吗?我该怎么做?此设置是否包含 beaconManager.setForegroundScanPeriod(5000l); 之类的内容?

最佳答案

是的,说到做到,这应该有助于使结果更加一致。

在您第一次获得 beaconManager 实例后立即添加您提到的行:beaconManager.setForegroundScanPeriod(5000l);

关于android - Altbeacon Android 库 - didRangeBeaconsInRegion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29133951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com