gpt4 book ai didi

android - AltBeacon 测距从不返回超过 1 个信标

转载 作者:行者123 更新时间:2023-11-29 17:31:33 27 4
gpt4 key购买 nike

我正在使用 AltBeacon 库 (2.5.1) 来检测信标。我设置了一个“通用”区域,以便能够检测范围内的任何信标,然后用它做我的事情。问题是,当我在范围内有多个信标时,didRangeBeaconsInRegion 回调总是一次只为我提供一个只有 1 个信标的集合,而这个信标是所有现有信标中的随机一个......为什么我不能得到所有的信标我收藏范围内的信标?

所有这些都是在一个服务中完成的,我确实清理了所有其他东西以仅保留下面代码的相关部分 -> 希望我在这里做错了什么?

public class MonitorService extends Service implements BeaconConsumer 
{

private BeaconManager beaconManager;


@Override
public void onCreate()
{
super.onCreate();


beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));

beaconManager.setForegroundScanPeriod(5000l);
beaconManager.setBackgroundScanPeriod(5000l);
beaconManager.setForegroundBetweenScanPeriod(1100l);
beaconManager.setBackgroundBetweenScanPeriod(1100l);


setupBeaconManager();
}


private void setupBeaconManager()
{
if (!beaconManager.isBound(this))
beaconManager.bind(this);
}

private void unsetBeaconManager()
{
if (beaconManager.isBound(this))
{
beaconManager.unbind(this);

try
{
beaconManager.stopRangingBeaconsInRegion(new Region("apr", null, null, null));
}
catch (RemoteException e)
{
Log.i(TAG, "RemoteException = "+e.toString());
}
}
}


@Override
public void onBeaconServiceConnect()
{
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region)
{
Log.i(TAG,"didRangeBeaconsInRegion, number of beacons detected = "+beacons.size());
// HERE IT IS : the size is Always 1, but the beacon (UUID etc. can be different)
}
});


try
{
beaconManager.startRangingBeaconsInRegion(new Region("apr", null, null, null));
}
catch (RemoteException e)
{
Log.i(TAG, "RemoteException = "+e.toString());
}


}

@Override
public void onDestroy()
{
unsetBeaconManager();

super.onDestroy();
}


}

我正在使用 Nexus 6 使用 Android 5.1.1(但 Wiko 廉价手机给出了相同的结果)。信标设置为每 600 毫秒发布一次广告……但即使是 100 毫秒,它也会给出完全相同的结果……

最佳答案

代码看起来不错。几个想法:

  • 尝试使用基于与 Locate 相同库的现成信标扫描仪应用程序.它会同时检测到您所有的信标吗?如果不是,则信标或其配置可能有问题。

  • 您的每个信标都有唯一标识符吗?默认情况下,库仅检测具有唯一标识符的多个信标。

关于android - AltBeacon 测距从不返回超过 1 个信标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32636327/

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