Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Altbeacon-仅检测当前范围内的信标,并丢弃此范围外的任何信标_Android_Ibeacon_Altbeacon - Fatal编程技术网

Android Altbeacon-仅检测当前范围内的信标,并丢弃此范围外的任何信标

Android Altbeacon-仅检测当前范围内的信标,并丢弃此范围外的任何信标,android,ibeacon,altbeacon,Android,Ibeacon,Altbeacon,我希望应用程序只看到“立即”范围内的信标。在其中一篇文章(我没有链接)中,我读到诸如Immediate/Near/Far之类的字符串对于altbeacon或其他东西已经过时,建议使用beacon.getDistance()

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

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

public void didrangebeaconregion(收集信标,Region){
对象[]beaconArray=beacons.toArray();
//找到距离最短的信标
int count=-1;//当没有信标时
int min=整数最大值;
for(int i=0;i

一些提示对我来说是一件好事。

术语“立即”、“近距离”和“远距离”是在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)
         }      
     }
}
public void didrangebeaconregion(收集信标,Region){
用于(信标:信标){
if(beacon.getDistance()<0.5){
//该信标是直接的(<0.5米)
}
else如果(beacon.getDistance()<3.0){
//该信标靠近(0.5至3米)
}
否则{
//该信标距离较远(>3米)
}      
}
}
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)
         }      
     }
}