安卓应用合规采集位置的核心只有三步:在隐私政策里讲清用途、在应用内请求同意、把采集精度和范围最小化。谷歌 3.91 亿美元位置追踪和解之后,位置数据的收集、存储与使用进入更多执法机构的视野。连隐私团队规模数一数二的谷歌都会在位置问题上翻车,隐私建设薄弱的中小企业更需要把采集流程做扎实。本文从技术角度讲清位置怎么来、安卓怎么取、怎么用才合规。
TL;DR
位置服务(LBS)已渗入导航、找店、查航班、规划路线等日常场景。常见的位置获取方式有四类:
安卓通过 LocationManager 获取位置并上报服务端,提供四种 provider:
GPS_PROVIDER:靠 GPS 取经纬度,精度高,但只能户外用,耗时耗电。NETWORK_PROVIDER:靠移动网络基站或 WiFi 取位置,有网即可快速定位、室内外皆可,精度不高。PASSIVE_PROVIDER:被动接收其他 provider 产生的位置更新,需 ACCESS_FINE_LOCATION 权限;未启用 GPS 时可能只返回粗略位置。FUSED_PROVIDER:曾被弃用,Android 12(API 31)重新启用,但依赖 GMS,国内暂无法使用。代码上,先取 LocationManager,再判断可用 provider,选定后获取 Location 对象读取经纬度:
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
List<String> providerList = lm.getProviders(true);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double lng = location.getLongitude();
访问位置数据前,应完成三个核心步骤。
第一步:制定隐私政策。 让用户知道应用如何、为何、在什么情况下使用位置数据,以及如何拒绝,语言要清晰简单。谷歌自家的隐私政策就把这类说明结构化拆分:
![]()
优步的隐私政策对每部分都给出概述,并明确“位置数据”属于服务使用中产生的数据,用户可拒绝但会影响部分功能:
![]()
第二步:在应用内请求同意。 使用位置必须取得授权,且应在请求时或请求前解释为何需要。研究表明,合理解释请求原因能提高用户同意率。下面是 Stagecoach 与 MyTaxi 在弹出系统权限请求前先解释用途的做法:
![]()
第三步:最小化使用。 精度越高,隐私风险越大。安卓提供两级精度:粗定位(ACCESS_COARSE_LOCATION,约一个街区)与精定位(ACCESS_FINE_LOCATION,GPS 级)。应根据业务判断是否真需要精确位置——两者都被谷歌归类为“危险”权限,非业务必需就不应采集。
![]()
位置合规不是“有没有申请权限”,而是“权限申请的时机、精度、范围是否与业务匹配”。常见的踩线点包括:应用一启动就默认申请全部权限、申请后长期不采集、后台未经同意采集、位置数据明文甚至跨境传输。落地上,应把采集时机对齐到用户同意之后与业务真正需要之时,按场景选择粗/精定位,并对位置数据的存储与跨境路径单独评估。除本案外,位置数据被转卖的下游风险,可参考爱尔兰 DPC 对精确位置数据转卖启动调查与AT&T 因非法披露客户位置数据被罚5700万美元。