【发布时间】: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