在前台服务中的位置,具有后台权限 VS 仅在应用程序中权限 Android Q
Posted
技术标签:
【中文标题】在前台服务中的位置,具有后台权限 VS 仅在应用程序中权限 Android Q【英文标题】:Location in Foreground service with Background permission VS in app only permissions Android Q 【发布时间】:2019-12-14 02:09:17 【问题描述】:我正在验证我的位置服务与 android Q 的兼容性,但我有点不确定我的应用会如何反应,因为在我的测试中,我发现授予后台权限与仅在应用运行时没有区别。
从 Q 迁移文档中得出此声明
一个应用被认为是在后台,除非它的一个 活动可见或应用正在运行前台服务。
由于位置服务是前台服务,在这种情况下权限差异是否重要?
【问题讨论】:
【参考方案1】:这是一个有点棘手的问题。
在 Q 上运行位置前台服务时,您需要“在应用程序运行时”权限 + 在清单中声明此前台服务属于位置类型。您的应用不需要后台权限。
如果您的应用确实要求后台权限,用户可能会怀疑并拒绝任何位置权限:(因此不建议向用户询问您不需要的权限。
强烈推荐观看来自 google IO 的视频:Updating Your Apps for Location Permission Changes in Android Q (Google I/O'19)
您可以在此处阅读有关 t 的更多信息:documantation
您可以在 GitHub 上查看 google 示例项目,以在此处使用前台服务在 Q 上进行位置更新:LocationUpdatesForegroundService
【讨论】:
【参考方案2】:您只需要运行前台服务而不是后台。否则,当前台没有活动时,您的应用将在后台服务启动期间崩溃
【讨论】:
请提供更多详细信息。我个人更好地帮助了@Hadas 的答案。 developer.android.com/reference/android/app/…以上是关于在前台服务中的位置,具有后台权限 VS 仅在应用程序中权限 Android Q的主要内容,如果未能解决你的问题,请参考以下文章
Android 11后台位置权限“仅在使用应用程序时允许”不授予权限