6

我的应用只需要非常粗略的位置数据,所以我最初将我的清单权限设置为ACCESS_COARSE_LOCATION,并为NETWORK_PROVIDER. 这给了我我需要的那种粗略的位置估计,但只有在谷歌位置服务打开的情况下。

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

那么,只有启用 GPS 的情况下,除非获得ACCESS_FINE_LOCATION许可,否则应用程序无法接收位置信息,这是真的吗?换句话说,GPS_PROVIDER如果应用程序只有ACCESS_COARSE_LOCATION权限,就不能发送粗略的位置估计?

4

1 回答 1

6

那么,只有启用 GPS 的情况下,应用程序是否无法接收位置信息,除非它具有 ACCESS_FINE_LOCATION 权限?

一般来说,是的。

引用文档LocationManager

如果您的应用程序只有粗略权限,那么它将无法访问 GPS 或被动位置提供程序。其他提供者仍将返回位置结果,但更新率将受到限制,并且确切位置将被混淆到粗略的准确性水平。

 

换句话说,如果应用程序只有 ACCESS_COARSE_LOCATION 权限,GPS_PROVIDER 不能发送粗略的位置估计?

引用Android 4.2 发行说明

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

但是,我假设这不会取代来自LocationManager. 我认为这意味着NETWORK_PROVIDER数据可能会被禁止,如果它被认为太准确的话。

于 2013-01-22T14:47:00.037 回答