Android 11后台位置权限“仅在使用应用程序时允许”不授予权限

Posted

技术标签:

【中文标题】Android 11后台位置权限“仅在使用应用程序时允许”不授予权限【英文标题】:Android 11 background location permission "Allow only while using the app" does not grant permission 【发布时间】:2021-05-25 00:31:31 【问题描述】:

正如标题所说,我目前正在将我的应用程序更新到 SDK 30,并且遇到了ACCESS_BACKGROUND_LOCATION 权限的问题。请求权限后,用户将被带到应用位置权限设置并提供 4 个选项:

始终允许 仅在使用应用时允许 每次询问 拒绝

除“始终允许”以外的所有选项均不授予权限,并在 grantResults 回调函数中的 IntArray 中返回 -1 onRequestPermissionsResult()。为什么?这令人难以置信的混乱。命名会让人相信权限会被授予,并且只有在应用程序处于焦点时才会发出后台权限请求。是否可以从选项中删除“仅在使用应用程序时允许”选项?我怎样才能解决这个问题??我只看到这些选择让用户感到困惑,因为不会授予权限除非他们选择“始终允许”

【问题讨论】:

【参考方案1】:

后台位置权限不像其他权限那样工作。这是一个将位置权限从仅前台提升到前台和后台的请求。

用户必须有意识地选择“始终允许”才能执行此操作并授予后台位置权限。否则,该权限将被视为被拒绝。

除非已授予前台位置,否则您甚至无法请求后台位置 - 当系统权限活动显示时,它应该已经选择了选项 2 或 3。

见https://developer.android.com/training/location/permissions#request-background-location

【讨论】:

另外请注意,提交到 Playstore 请求 ACCESS_BACKGROUND_LOCATION 的新应用程序要求您填写权限声明表,其中包括必须显示您的应用程序的视频证据,明确告诉用户您需要权限的原因以及解释你的特点。 support.google.com/googleplay/android-developer/answer/9799150

以上是关于Android 11后台位置权限“仅在使用应用程序时允许”不授予权限的主要内容,如果未能解决你的问题,请参考以下文章

如果在后台使用位置,更新到 Android 11 是不是需要应用显示另一个位置权限对话框?

Android Q - 前台服务需要后台位置权限?

如何使我的 Android 应用符合“后台位置政策”

使用颤振位置插件在 Android 中自动添加后台位置权限

一次性权限导致后台计划作业和警报被取消

在前台服务中的位置,具有后台权限 VS 仅在应用程序中权限 Android Q