应用程序可能需要批准后台位置

问题描述

我收到一封来自 google 的电子邮件,说我的一个应用程序需要将位置权限从后台更改为前台....

我查看了应用程序,它似乎已经在前台...我对清单的权限是:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

我也是根据用户需求请求权限...那有什么问题?

解决方法

如果您按照 link 操作,您会发现在哪种情况下您需要前台权限。

在链接中明确指出:

如果您的应用包含共享或接收位置的功能 信息仅一次,或在规定的时间内,那么 功能需要前台位置访问权限。一些例子包括 以下:

  • 在导航应用中,用户可以通过一项功能获取详细路线。
  • 在消息传递应用中,一项功能允许用户与其他用户分享他们当前的位置。

在 Android 10(API 级别 29)及更高版本上,您必须声明此前台服务类型。

<service
    android:name="MyNavigationService"
    android:foregroundServiceType="location" ... >
    <!-- Any inner elements would go here. -->
</service>