【问题标题】:Android Q - Background Location Permission needed for Foreground service?Android Q - 前台服务需要后台位置权限?
【发布时间】:2021-06-11 16:28:52
【问题描述】:

本文档的第一点说,如果在 Android 11 开始时应用处于前台时启动前台位置服务,则需要后台位置权限。

https://developer.android.com/guide/components/foreground-services#bg-access-restrictions

我的用例是用户点击按钮开始位置跟踪。点击该按钮会启动一个前台服务,该服务会发出通知。现在,我希望应用程序即使在后台运行后也能继续跟踪。 在 Android 10 之前,不需要后台位置权限即可完成此操作。

我的问题是,要支持 Android 11,我是否也需要开始请求后台权限?另外,我需要为 Android 10 做同样的事情吗?没有在互联网上找到任何其他参考来验证这一点。请让我知道你的想法。

【问题讨论】:

    标签: android android-permissions android-location foreground-service


    【解决方案1】:

    根据the definition of background work

    只要满足以下每个条件,应用就被认为在后台运行:

    1. 用户当前看不到任何应用活动。
    2. 该应用未运行任何在用户可见该应用的活动时启动的前台服务。

    否则,应用程序被认为在前台运行。

    在您的情况下,您适合在用户可见活动时启动前台服务的第二点,因此从技术上讲,即使用户在显示服务通知时您的应用仍被视为处于前台导航离开您的应用。

    如果您的目标是 Android 10 及更高版本,前台服务需要在其清单声明中包含 android:foregroundServiceType="location"。见here

    如果您在创建的前台服务中获取位置更新,则不一定需要ACCESS_BACKGROUND_LOCATION 权限,因为从技术上讲,您不是在后台访问位置。但是,在您的服务中,如果您使用任何可能需要后台位置权限的 API,例如地理围栏,那么您将需要将后台权限添加到清单中并相应地请求和处理权限。

    【讨论】:

      猜你喜欢
      • 2019-12-14
      • 2012-10-30
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      • 2013-05-06
      • 2020-06-05
      相关资源
      最近更新 更多