当应用程序在后台并且前台服务在 Android 10+ 中运行时,Altbeacon 监控将不起作用



我正在使用Altbeacon库来检测我的应用程序何时在给定区域内或外部

我遇到的问题是,当应用程序进入后台didExitRegion方法将被调用,即使手机旁边的信标,只会回来,当我把应用程序在前台检测它。

这是我在绑定信标管理器

之前使用的配置
iBeaconManager.enableForegroundServiceScanning(
BeaconNotificationManager.createNotification(
context
), BeaconNotificationManager.notificationId
)
iBeaconManager.setEnableScheduledScanJobs(false)
iBeaconManager.backgroundBetweenScanPeriod = 1000
iBeaconManager.backgroundScanPeriod = 1500
iBeaconManager.foregroundBetweenScanPeriod = 1000
iBeaconManager.foregroundScanPeriod = 1500

我注意到,当backgroundBetweenScanPeriod为0时,这个问题不会重现。

最后,当应用程序允许后台位置权限时,这个问题也会停止,但如果我理解正确的话,这应该是不必要的,因为我启用了前台服务扫描。

Thanks in advance

必须有后台定位权限在后台检测信标。无论您是否有前台服务,都是如此。

Android对"ForegroundService"一词的命名非常具有误导性。拥有一个并不会改变操作系统的感知,如果你的应用程序是"在前台"的权限执行的目的。当屏幕上没有可见的活动时,你的应用程序仍然在后台。看到这里。

状态栏中的前台服务指示器只是允许我们在Android 8+上运行较长时间的服务,而没有它们的应用程序被限制在10分钟的后台时间。

最新更新