重新启动Android应用后,didRangeBeaconsInRegion()会多次调用

时间:2018-12-29 16:28:36

标签: android ibeacon beacon ibeacon-android android-ibeacon

我正在开发可在信标附近扫描的Android应用。 第一次打开Android应用程序,每隔2秒扫描一次信标和didRangeBeaconsInRegion()方法调用。

但是当我关闭应用程序然后再次启动时,didRangeBeaconsInRegion()方法在2秒内调用了2次

第3次didRangeBeaconsInRegion()方法在2秒内调用了3次

以此类推。...

代码段

@Override
public void didRangeBeaconsInRegion(final Collection<Beacon> beacons, final Region region) {
    if (beacons != null) {
        Log.i("iBeacons", "beacons.size() : " + beacons.size());
    }
}

日志:

2018-12-29 21:39:40.328 26528-27120/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:40.328 26528-27120/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:40.328 26528-27120/com.test.demo I/iBeacons: beacons.size() : 0

2018-12-29 21:39:42.259 26528-27124/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:42.260 26528-27124/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:42.260 26528-27124/com.test.demo I/iBeacons: beacons.size() : 1

2018-12-29 21:39:44.229 26528-27132/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:44.229 26528-27132/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:44.229 26528-27132/com.test.demo I/iBeacons: beacons.size() : 1

2018-12-29 21:39:46.241 26528-27136/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:46.241 26528-27136/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:46.241 26528-27136/com.test.demo I/iBeacons: beacons.size() : 1

2018-12-29 21:39:48.251 26528-27138/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:48.251 26528-27138/com.test.demo I/iBeacons: beacons.size() : 1
2018-12-29 21:39:48.251 26528-27138/com.test.demo I/iBeacons: beacons.size() : 1

2018-12-29 21:39:50.249 26528-27139/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:50.249 26528-27139/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:50.249 26528-27139/com.test.demo I/iBeacons: beacons.size() : 0

2018-12-29 21:39:52.241 26528-27141/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:52.241 26528-27141/com.test.demo I/iBeacons: beacons.size() : 0
2018-12-29 21:39:52.241 26528-27141/com.test.demo I/iBeacons: beacons.size() : 0

更新2:

这里是回调代码

mBeaconManager.addRangeNotifier(this);

一旦用户允许信标扫描操作获得所有必要的权限,上述回调仅被调用一次,仅次于表单应用程序

问题:第一次运行正常,但是第二次,第三次出现问题,...重新启动。 当应用程序第三次重启时,我捕获了上面的日志。

注意:,当我清除申请表背景时,它也可以正常工作。

1 个答案:

答案 0 :(得分:0)

mBeaconManager.removeRangeNotifier(this);
相关问题