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

Spe*_*ake 7 android android-permissions

正如标题所示,我目前正在将我的应用程序更新到 SDK 30,但在ACCESS_BACKGROUND_LOCATION权限方面遇到问题。请求权限后,用户将进入应用程序位置权限设置,并获得 4 个选项:

  • 允许所有时间
  • 仅在使用应用程序时允许
  • 每次都问
  • 否定

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

Paw*_*wel 5

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

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

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

请参阅https://developer.android.com/training/location/permissions#request-background-location

  • 另请注意,提交到 Playstore 请求“ACCESS_BACKGROUND_LOCATION”的新应用程序要求您填写权限声明表,其中包括必须显示应用程序的视频证据,明确告诉用户您需要权限的原因并解释您的功能。https://support.google.com/googleplay/android-developer/answer/9799150 (4认同)