You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

安卓哪些版本支持GPS关闭时请求定位?API23后哪些版本取消该功能?

Android定位权限与系统版本相关问题解答

Hey,针对你提出的两个问题,我来给你梳理清楚细节:

1. 哪些Android系统版本允许在GPS功能关闭的情况下发起位置请求?

Android 10(API 29)之前的所有Android版本,都支持在GPS硬件开关关闭的前提下发起位置请求——只要你的App已经获得了对应的位置权限(ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION)。

这类请求会依赖网络定位方式(比如WiFi热点匹配、基站三角定位)来获取大致的位置信息,完全不需要GPS模块工作。哪怕用户手动关掉了系统设置里的GPS开关,只要系统的网络定位服务处于开启状态,App就能正常拿到位置数据。

2. 搭载API 23的Android设备,即使GPS关闭仍可通过网络定位获取位置,从哪个版本开始停止了该功能?

准确来说,系统并没有“停止”网络定位功能,而是从**Android 10(API 29)**开始对位置权限的管控逻辑做了更严格的调整:

  • 如果App申请的是ACCESS_FINE_LOCATION权限,但用户只开启了网络定位(关闭GPS),App只能拿到粗略位置(权限范围降级为ACCESS_COARSE_LOCATION的级别);
  • 到了Android 12(API 31),系统进一步细化了定位模式的权限对应关系:如果用户关闭了高精度定位模式(GPS+网络的组合模式),只保留“设备仅”(纯GPS)或“省电”(纯网络定位)模式,那么申请了ACCESS_FINE_LOCATION的App将无法获取精细位置,只能拿到粗略位置数据。

需要注意的是,纯网络定位本身并没有被移除——如果你的App只需要粗略位置,只要拿到ACCESS_COARSE_LOCATION权限,哪怕是最新的Android版本,关闭GPS后依然可以正常通过网络定位获取位置信息。

内容的提问来源于stack exchange,提问作者Javier Castellanos Cruz

火山引擎 最新活动