【问题标题】:Get *coarse* location from GPS provider on Android从 Android 上的 GPS 提供商获取*粗略*位置
【发布时间】:2013-01-22 14:30:29
【问题描述】:

我的应用只需要非常粗略的位置数据,所以我最初将我的清单权限设置为ACCESS_COARSE_LOCATION,并为NETWORK_PROVIDER设置了位置监听器。这为我提供了所需的粗略位置估计,但仅在启用 Google 位置服务的情况下。

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

那么,只有启用 GPS 的应用程序是否无法接收位置信息,除非它具有 ACCESS_FINE_LOCATION 权限?换句话说,如果应用只有ACCESS_COARSE_LOCATION 权限,GPS_PROVIDER 无法发送粗略的位置估计?

【问题讨论】:

    标签: android gps location


    【解决方案1】:

    那么,是不是真的只启用了 GPS,一个应用除非拥有 ACCESS_FINE_LOCATION 权限才能接收位置信息?

    一般来说,是的。

    引用the documentation for LocationManager:

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

     

    也就是说,如果应用只有 ACCESS_COARSE_LOCATION 权限,GPS_PROVIDER 无法发送粗略的位置估计?

    引用Android 4.2 release notes

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

    但是,我假设这不会取代 LocationManager 中的“将无法访问 GPS”声明。我认为这意味着NETWORK_PROVIDER 数据可能会被禁止,如果它被认为太准确的话。

    【讨论】:

    • 那太糟糕了。如果仅请求 COURSE 许可,GPS_PROVIDER 仍能返回粗略估计,那就太好了。
    猜你喜欢
    • 2011-10-10
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多