逆寒手游活动资讯网

位置信息访问权限的类型

为了保护用户隐私,使用位置信息服务的应用必须请求位置权限。

多项权限与位置信息相关。具体请求哪项权限以及请求相关权限的方式取决于应用用例的位置信息要求。

本页介绍了不同类型的位置信息要求,并说明如何在每种情况下请求位置权限。

如需请求位置信息权限,请遵循适用于所有运行时权限的最佳实践。

位置信息访问权限的类型

每项权限都具有以下特征组合:

类别:前台位置信息或后台位置信息。

精确度:确切位置信息或大致位置信息。

前台位置信息

如果应用的某项功能仅分享或接收一次位置信息,或者只在特定的一段时间内分享或接收位置信息,则该功能需要前台位置信息访问权限。以下是此类情况的一些示例:

在导航应用中,某项功能可让用户查询精细导航路线。

在即时通讯应用中,某项功能可让用户与其他用户分享自己目前所在的位置。

如果应用的功能在下列某种情况下访问设备当前的位置信息,系统就会认为应用需要使用前台位置信息:

属于应用的某个 activity 可见。

应用的某个前台服务正在运行中。当有前台服务在运行时,系统会显示一条常驻通知来提醒用户注意。当应用被置于后台时(例如当用户按设备上的主屏幕按钮或关闭设备的显示屏时),其位置信息访问权限会得到保留。

此外,您还应声明 location 的前台服务类型,如以下代码段所示。在 Android 10(API 级别 29)及更高版本中,您必须声明此前台服务类型。

android:name="MyNavigationService"

android:foregroundServiceType="location" ... >

当应用请求 ACCESS_COARSE_LOCATION 权限或 ACCESS_FINE_LOCATION 权限时(如以下代码段所示),就是在声明需要获取前台位置信息:

注意: 从 Android 12 开始,您的应用可以调用 getLocationPowerSaverMode() 来检查在“省电模式”处于活动状态时,设备的位置信息功能会如何运行。如果此方法返回 LOCATION_MODE_FOREGROUND_ONLY,则当“省电模式”处于开启状态时,即使屏幕处于关闭状态,您的应用在前台或运行前台服务时也会继续接收位置信息更新。

后台位置信息

如果应用中的某项功能会不断与其他用户分享位置信息或使用 Geofencing API,则该应用需要后台位置信息访问权限。以下是此类情况的几个示例:

在家庭位置信息分享应用中,某项功能可让用户与家庭成员持续分享位置信息。

在 IoT 应用中,某项功能可让用户配置自己的家居设备,使其在用户离家时关机并在用户回家时重新开机。

除了前台位置信息部分所述的情况之外,如果应用在任何其他情况下访问设备的当前位置信息,系统就会认为应用需要使用后台位置信息。后台位置信息精确度与前台位置信息精确度相同,具体取决于应用声明的位置信息权限。

在 Android 10(API 级别 29)及更高版本中,您必须在应用的清单中声明 ACCESS_BACKGROUND_LOCATION 权限,以便请求在运行时于后台访问位置信息。在较低版本的 Android 系统中,当应用获得前台位置信息访问权限时,也会自动获得后台位置信息访问权限。

注意: Google Play 商店设置了有关设备位置信息的位置信息政策,限制应用仅在实现核心功能所必需的情形下且在满足相关政策要求后才能请求后台位置信息访问权限。

准确度

Android 支持以下级别的位置信息精确度:

大致位置

提供设备位置的估算值。如果此位置估算值来自 LocationManagerService 或 FusedLocationProvider,则该估算值会精确到 3 平方公里(约 1.2 平方英里)以内。如果您声明了 ACCESS_COARSE_LOCATION 权限,但未声明 ACCESS_FINE_LOCATION 权限,您的应用就可以收到该精确度级别的位置信息。

确切位置

提供尽可能准确的设备位置估算值。

如果位置估算值来自 LocationManagerService 或 FusedLocationProvider,则此估算值通常可以精确到 50 米(160 英尺)以内,有时甚至可以精确到几米(10 英尺)以内。如果您声明了 ACCESS_FINE_LOCATION 权限,您的应用就可以收到该精确度级别的位置信息。

如果用户授予大致位置信息权限,您的应用只能获取大致位置信息(无论它声明了哪些位置信息权限)。

当用户仅授予大致位置信息使用权时,您的应用应该仍会正常工作。如果应用中的某项功能确实需要使用 ACCESS_FINE_LOCATION 权限访问确切位置信息,您可以请求用户允许该应用获取确切位置信息。

后台位置信息授权提醒

在 Android 10(API 级别 29)及更高版本中,当应用中的功能在用户授予后台位置信息访问权限后首次在后台访问设备位置信息时,系统会安排向用户发送一条通知。此通知旨在提醒用户他们已允许您的应用始终都能访问设备位置信息。示例通知如图 8 所示。

检查应用的 SDK 依赖项中的位置信息要求

检查您的应用是否使用依赖于位置信息权限(尤其是 ACCESS_FINE_LOCATION 权限)的 SDK。如需了解详情,请参阅 Medium 上关于了解 SDK 依赖项的行为的博文。

其他资源

如需详细了解 Android 中的位置权限,请查看以下资料:

Codelab

隐私保护最佳实践

视频

如何查找可能在后台使用位置信息的情况

示例

示例应用演示了如何使用位置信息权限。

2026-02-01 03:17:59


颜王是谁? 为什么叫孙红雷颜王
中国3x3女篮称霸世界杯 成中国篮球历史上第一个世界冠军