【问题标题】:How to detect multiple beacons using Altbeacon android library?如何使用 Altbeacon android 库检测多个信标?
【发布时间】:2015-01-24 18:48:17
【问题描述】:

我在我的 android 设备上使用 AltBeacon 示例应用 - altbeacon.org 提供的示例应用在这里:https://github.com/AltBeacon/android-beacon-library-reference

但是,应用程序在启动时只检测并显示一个信标。我的 Android 设备附近有大约 5 个信标。如何检测所有信标?

在 RangingActivity.java 中,我注意到当信标出现时会调用这个方法:

public void onBeaconServiceConnect() {
    beaconManager.setRangeNotifier(new RangeNotifier() {
    @Override 
    public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
        if (beacons.size() > 0) {
            EditText editText = (EditText) RangingActivity.this.findViewById(R.id.rangingText);                    
                    Beacon firstBeacon = beacons.iterator().next();
                    logToDisplay("The first beacon " + firstBeacon.toString() + " is about " + firstBeacon.getDistance() + " meters away.");
            }
        }
    }

我将迭代器修改为在 while 循环中从集合中读取,如下所示:

     Beacon firstBeacon;
     while(beacons.iterator().hasNext()){
                firstBeacon = beacons.iterator().next();
                logToDisplay("The first beacon " + firstBeacon.toString() + " is about " + firstBeacon.getDistance() + " meters away.");
            }

但是,此修改导致应用崩溃。

我的问题:

(1) 如何显示我的 Android 设备附近的所有信标?

(2) 如何检测超出区域的信标?

【问题讨论】:

  • 当它崩溃到你的问题时,你能添加 logcat 输出吗?

标签: android ibeacon ibeacon-android android-ibeacon altbeacon


【解决方案1】:

For 1. 我认为您需要使用 For 循环。像这样。

for (Beacon beacon : beacons) {
    logToDisplay("The beacon " + beacon.toString() + " is about " + beacon.getDistance() + " meters away.");
}

对于 2。我无法检测到它,但它可能是一个很长的超时。所以要非常耐心。我认为可以更改 Monitoring 活动中的代码以显示一条消息。或者,您可以从设备查看 logcat。 可以在 BeaconReferenceApplication 的 didExitRegion 部分中使用一个简单的 logToDisplay。

public void didExitRegion(Region region) {
    if (monitoringActivity != null) {
        monitoringActivity.logToDisplay("I no longer see a beacon in the "+region.getUniqueId());
    }
}

【讨论】:

  • 使用循环是正确的答案。为简单起见,参考应用仅显示到第一个信标的距离
猜你喜欢
  • 2014-10-03
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多