所有文档
开发指南
熟悉IOS系统的用户,一定注意到在IOS14系统上推出的全新位置授权功能---模糊定位功能,Android12系统的『大致位置』功能也是对标这一功能。
只有使用以Android12为目标平台的应用,用户可以请求应用只能访问大致位置信息,应用需要同时请求ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION权限,系统权限对话框将为用户提供以下新选项:
确切:提供 ACCESS_FINE_LOCATION 权限提供的位置信息精确度。
大致:提供 ACCESS_COARSE_LOCATION 权限提供的位置信息精确度。
需要注意的是,Android12要求必须同时请求ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION权限才会触发相关权限弹框, 如果只请求ACCESS_COARSE_LOCATION权限,系统将只会弹出请求大致位置的弹框。如果开发者只请求ACCESS_FINE_LOCATION, 系统会忽略该请求,并在Logcat里记录错误信息:ACCESS_FINE_LOCATION must be requested with ACCESS_COARSE_LOCATION。 开发者在适配Android12应用时一定要注意上述权限请求相关要求。
在 Android 12 中,用户可以转到系统设置,以设置任何应用的首选位置信息精确度, 而不管该应用的目标 SDK 版本是什么。即使您的应用安装在搭载 Android 11 或更低版本的设备上, 然后升级到 Android 12,也是如此。如果用户从权限对话框或在系统设置中将应用的位置信息访问权限从确切位置降级到大致位置, 则系统会重启应用的进程。
大致位置权限会影响所有的位置授权场景,包括仅一次、使用期间、总是允许等定位授权场景。
如果您的应用当前依赖于使用 ACCESS_FINE_LOCATION 权限访问确切位置, 则大致位置可能会影响您的应用。在让用户将应用的访问权限升级到确切位置之前, 请考虑应用的用例是否确实需要这一级别的精确度。
如需请求用户将应用的位置信息访问权限从大致位置升级到确切位置,请执行以下操作:
(1) 如有必要,请说明您的应用为何需要获取权限 。
(2) 再次同时请求 ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION 权限。 由于用户已允许系统向您的应用授予大致位置信息访问权限,因此这次系统对话框有所不同,如下图所示:
上一篇
下一篇
本篇文章对您是否有帮助?