Android AltBeacon 库停止查找信标每 1 秒在银河 s7 的后台应用程序.



我在服务中使用 AltBeacon 库,当应用程序处于前台时,每 1 秒找到一次我的信标。在Galaxy s7上,当应用程序进入后台时,它每秒停止找到信标,相反,它在 5 - 30 秒之间每隔几秒钟返回一次数据。我可以看到"didRangeBeaconsInRegion"每秒调用一次,但它大部分时间都会返回没有信标。

当应用程序在后台时,我需要保持前台的行为。

这是我的信标管理器配置:

private static long EXIT_PERIOD = 16500;
private static long SCAN_PERIOD = 1150;
.
.
.
beaconManager = BeaconManager.getInstanceForApplication(this);
BeaconManager.setRegionExitPeriod(EXIT_PERIOD);
beaconManager.setBackgroundScanPeriod(SCAN_PERIOD);
beaconManager.setForegroundScanPeriod(SCAN_PERIOD);
beaconManager.setBackgroundBetweenScanPeriod(0);

某些适用于三星设备的 Android 7.x 版本会在应用前台没有活动时将蓝牙扫描置于低功耗模式。 您看到 Les 频繁检测的原因是,这就是 Android 上的低功耗扫描行为方式。

您可以在此处阅读有关此问题的更多信息:

https://github.com/AltBeacon/android-beacon-library/issues/483

需要明确的是,这似乎是三星针对Android的定制。 没有已知的解决方法可以防止操作系统使用低功耗扫描覆盖低延迟扫描。

最新更新