在安卓设备上从GPS提供商获取粗略位置

6
我的应用程序只需要很粗略的位置数据,所以我最初将清单权限设置为ACCESS_COARSE_LOCATION,并设置了一个NETWORK_PROVIDER的位置监听器。这给了我恰好需要的粗略位置估计,但只有在打开Google位置服务时才能使用。
我原本期望,如果用户只启用GPS,则仍然可以收到他们位置的粗略估计。但似乎唯一从GPS_PROVIDER获取任何位置信息的方式是使用ACCESS_FINE_LOCATION权限。
因此,是否真的如此,仅启用GPS时,应用程序不能接收位置信息,除非具有ACCESS_FINE_LOCATION权限?换句话说,如果应用程序仅具有ACCESS_COARSE_LOCATION权限,那么GPS_PROVIDER无法发送粗略的位置估计?
1个回答

7

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

一般而言,是的。

引用LocationManager文档

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

 

换句话说,如果应用程序只有ACCESS_COARSE_LOCATION权限,GPS_PROVIDER无法发送粗略的位置估计? 引用{{link1:Android 4.2发布说明}}: 与之前的Android版本相比,如果您的应用程序请求ACCESS_COARSE_LOCATION权限但未请求ACCESS_FINE_LOCATION权限,则用户位置结果可能不太准确。 为了满足用户对隐私的期望,当您的应用程序请求粗略位置(而不是精细位置)的权限时,系统不会提供比城市街区更准确的用户位置估计。 但是,我假设这并不取代LocationManager的“将无法访问GPS”声明。我假设这意味着如果NETWORK_PROVIDER数据被认为过于准确,则可能会受到限制。

太糟糕了。如果只请求COURSE权限,GPS_PROVIDER仍然可以返回粗略估计值就好了。 - Josh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接