从Android上的GPS提供商处获取*粗略*位置

Jos*_*osh 6 gps android location

我的应用程序只需要非常粗略的位置数据,所以我最初设置我的清单权限ACCESS_COARSE_LOCATION,并为其设置位置监听器NETWORK_PROVIDER.这给了我所需的粗略位置估算,但只有Google位置服务开启.

我期待如果用户只启用了GPS,我仍然可以得到他们位置的粗略估计.但似乎GPS_PROVIDER是通过使用ACCESS_FINE_LOCATION权限从中获取任何位置信息的唯一方法.

那么,只有启用GPS,应用才能获得位置信息,除非获得ACCESS_FINE_LOCATION许可吗?换句话说,GPS_PROVIDER如果应用只有ACCESS_COARSE_LOCATION权限,则无法发送粗略的位置估算值?

Com*_*are 6

那么,只有启用GPS,应用程序无法接收位置信息,除非它具有ACCESS_FINE_LOCATION权限吗?

一般来说,是的.

引用文档LocationManager:

如果您的应用程序仅具有粗略权限,则它将无法访问GPS或被动位置提供程序.其他提供商仍将返回位置结果,但更新速率将受到限制,并且确切的位置将被混淆到粗略的准确度.

 

换句话说,如果应用只有ACCESS_COARSE_LOCATION权限,则GPS_PROVIDER无法发送粗略的位置估算值?

引用Android 4.2发行说明:

与以前版本的Android相比,如果您的应用请求ACCESS_COARSE_LOCATION权限但未请求ACCESS_FINE_LOCATION权限,则用户位置结果可能不太准确.为了在您的应用请求粗略位置(而不是精确位置)的许可时满足用户的隐私期望,系统将不会提供比城市街区更准确的用户位置估计.

但是,我假设这并不取代"无法访问GPS"声明LocationManager.我认为这意味着NETWORK_PROVIDER如果认为数据太准确,数据可能会被禁止.