仅在前台应用:如何避免“未声明后台位置访问”

Posted

技术标签:

【中文标题】仅在前台应用:如何避免“未声明后台位置访问”【英文标题】:App only in foreground: How to avoid "Background location access not declared" 【发布时间】:2021-05-04 16:31:03 【问题描述】:

我的应用只有在前台运行时才需要访问该位置。 目标是记录用户点击按钮时的 gps 位置。

该应用多年来一直运行良好,但由于“未声明后台位置访问”,该应用程序现在被 Play 商店拒绝 我的意图不是在后台使用位置。 所以我猜有问题,但我找不到问题。

在清单中,我设置了 ACCESS_FINE_LOCATION 但没有设置 ACCESS_BACKGROUND_LOCATION 我也试过<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove" />,但是没有用。

我正在使用 LocationManager 类 在我的活动中:

在创建时,我通过调用 getSystemService(Context.LOCATION_SERVICE) 获取位置服务 在 onResume() 中,我调用 requestLocationUpdates(...) 在 onPause() 中,我调用 removeUpdates(...)

我错过了什么?

【问题讨论】:

请重新打开问题。引用的帖子(Android 10 (Q) ACCESS_BACKGROUND_LOCATION 权限)正好相反:它需要后台位置。就我而言,我只想要前台位置,但 Play 商店声称我在后台使用该位置 【参考方案1】:

经过 1 周的努力找出问题所在,向 Google 支持发送消息(没有答案),在封闭的测试分支中发布我的代码的不同版本,再次填写政策表格等......问题本周末自行消失(无代码更改)。

【讨论】:

【参考方案2】:

我的一个应用程序基于后台位置,只需执行以下步骤即可获得谷歌的批准:

第 1 步> 添加弹出窗口,解释为什么我们在后台获取用户位置 第 2 步> 重要弹出窗口应出现在通知权限之前。 第 3 步> 制作视频来解释您的用例为什么在后台获取位置很重要 步骤 4> 弹出窗口最重要,确保视频具有详细的弹出窗口显示。 第 5 步> 在 Play 控制台上分享视频链接 第 6 步> 在 Play 控制台上添加您的用例的书面说明 步骤 7> 在 Playstore 上添加最新的 apk 以供审核。

【讨论】:

您的弹出窗口是否显示过一次?我曾经在我的地图屏幕上请求许可,它每次都会检查它是理所当然的。如果已经被授予,即使已经被接受,我是否应该给出弹出窗口? @Try2prog :在每次请求许可之前,都应该出现解释您的位置用例的弹出窗口。

以上是关于仅在前台应用:如何避免“未声明后台位置访问”的主要内容,如果未能解决你的问题,请参考以下文章

如何避免将文件下载到下载文件夹并仅在c#中下载到其他特定文件夹

iOS,如何避免应用长寿?

如何避免在后台运行时启动应用程序时显示启动画面?

关闭应用程序时如何避免处理来自 GCM 的推送通知

如何避免iOS中的重复通知?

避免仅在 R 数据表的第一列中换行