gpt4 book ai didi

android - Altbeacon - 仅在 IMMEDIATE 范围内检测信标并丢弃此范围外的任何信标

转载 作者:搜寻专家 更新时间:2023-11-01 08:44:50 24 4
gpt4 key购买 nike

我希望应用程序只看到“立即”范围内的信标。在其中一篇文章(我没有链接)中,我读到像 Immediate/Near/Far 这样的字符串已经被 altbeacon 或其他东西废弃了,建议使用 beacon.getDistance() < 0.5用于即时远程信标。但不幸的是,我不知道如何实现它。

我尝试了一篇文章提出的以下代码来找到最短距离的信标,但似乎无法正常工作(很可能是因为 rssi 波动和通过保持信标彼此之间的短距离进行测试......不知道为什么他们想要 min = Integer.MAX_VALUE ....但我至少期待一些结果)

public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
Object[] beaconArray = beacons.toArray();

//find the beacon with shortest distance
int count=-1; //when no beacon is there
int min = Integer.MAX_VALUE;

for (int i=0; i < beaconArray.length; i++){
int d=((Beacon)beaconArray[i]).getRssi();
if(d < min){
min=d;
count=i; //1st beacon in the array
}
}

//play with the beacon at the shortest distance
uuid = ((Beacon)beaconArray[count]).getId1().toString();

一些提示对我来说将是一种祝福。

最佳答案

立即、近和远这些术语是在 iOS 中实现的任意距离范围桶。我们将它们放在 2.0 Android Beacon 库中,因为这些术语含糊不清,并且以米为单位实现特定的距离桶非常容易。以下是如何实现等效功能:

public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
for (Beacon beacon: beacons) {
if (beacon.getDistance() < 0.5) {
// This beacon is immediate (< 0.5 meters)
}
else if(beacon.getDistance() < 3.0) {
// This beacon is near (0.5 to 3 meters)
}
else {
// This beacon is far (> 3 meters)
}
}
}

关于android - Altbeacon - 仅在 IMMEDIATE 范围内检测信标并丢弃此范围外的任何信标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29464528/

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