3

我的应用程序会定期从后台开始跟踪前台服务中的位置更新,并在添加 android:foregroundServiceType="location" 后在 Android Q 中正常工作,但在 Android 11 beta 中它不再接收位置。

这种方式是 11 中的新方式还是只是一个错误?我没有在文件中看到任何内容。

4

2 回答 2

2

从 Android 11 开始,前台“位置”服务不再足以获取后台位置更新。我们现在需要请求 ACCESS_BACKGROUND_LOCATION,如果前台服务是在后台启动的(比如广播接收器):

https://developer.android.com/about/versions/oreo/background-location-limits

更糟糕的是,您必须将 ACCESS_BACKGROUND_LOCATION 与其他位置权限分开请求,否则它将不起作用:

https://developer.android.com/about/versions/11/privacy/location

于 2020-12-22T00:06:00.133 回答
1

目前,如果前台服务正在运行并且活动在前台,应用程序只会获取位置更新。然后,您可以将应用程序置于后台或关闭屏幕,它会不断获取位置更新。

如果前台服务是在应用程序进入后台后启动的,例如通过广播接收器,那么它不会获得位置更新。

作为一种解决方法,我们必须请求后台位置权限。

似乎这是 Android 11 的一个未解决问题:https ://issuetracker.google.com/issues/158814176

于 2020-07-15T03:36:10.330 回答