0

当应用程序在前台时,我正在使用服务内部的 AltBeacon 库每 1 秒查找一次我的信标。在 Galaxy s7 上,当应用程序进入后台时,它会停止每秒查找信标,而是在 5 到 30 秒之间每隔几秒返回一次数据。我可以看到“didRangeBeaconsInRegion”每秒调用一次,但大多数时候它返回时没有信标。

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

这是我的 BeaconManager 配置:

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);

肿瘤坏死因子

4

1 回答 1

1

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

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

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

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

于 2017-04-02T22:14:56.737 回答