【问题标题】:Android gps provider and gps iconAndroid gps 提供商和 gps 图标
【发布时间】:2015-12-15 17:41:42
【问题描述】:

今天在尝试我的代码时,我的脑海中出现了一些关于gps提供者、gps硬件、gps图标和精细定位权限的疑问。

我在 Samsung Galaxy s3、Htc one m8 上观察到了我的代码和 gps 图标。并且 gps 已禁用

mLocationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000 * 10, 0, this, Looper.myLooper());
...
@Override
public void onLocationChanged(Location location) {
    mListenerRef.get().onLocationChanged(location);
}

Galaxy s3 - Gps 图标没有出现,它没有触发 onLocationChanged 方法。 (没关系)

Htc one m8 - Gps 图标出现、闪烁和触发 onLocationChanged(但如何?)

此时问题弹出

  • ACCESS_FINE_LOCATION 权限是否会在某些设备上赋予应用覆盖 GPS 状态?
  • 那么,即使禁用 gps,应用程序也能接收位置信息吗?

然后我在galaxy s3上启用了gps

(前 2 分钟)出现 Gps 图标(但不闪烁),触发 onLocationChanged 方法(但如何?)

(2分钟后)GPS图标出现(闪烁),触发了onLocationChanged方法

再次弹出问题

  • gps 图标闪烁是什么意思?任何非规范的含义?
  • 闪烁是否意味着 gps 硬件正在尝试第一次修复?
  • 或者闪烁意味着提供者触发 onLocationChanged 方法?

【问题讨论】:

    标签: android gps location


    【解决方案1】:

    gps 图标闪烁是什么意思?

    -> 好吧,我希望你知道 GPS 提供商不能在屋檐下工作。因此,完全不可能从屋顶下的 GPS 提供商处获取位置更新。在这种情况下,如果用户启用 GPS,则会出现 GPS 闪烁图标,通知用户正在搜索 GPS。

    -> 一旦找到 GPS,图标就不再闪烁,您将从 GPS 提供商处获取位置更新。

    -> 静止的 GPS 图标表示 Android 系统已准备好从 GPS 提供商发送位置更新。


    Htc one m8 - Gps 图标出现、闪烁并触发 onLocationChanged(但如何?)

    -> 在不启用位置更新的情况下获取位置更新听起来很奇怪。我不确定你是如何确认你得到了位置更新的。

    -> 我会建议你检查是否启用了 GPS 提供程序,然后请求更新位置。

    【讨论】:

      【解决方案2】:

      Fine_location 权限将使用户能够从 gps、wifi、网络进行更新。因此,如果 gps 不可用,仍然可以触发 onlocationChange(),因为最近的位置可能是通过 wifi/网络获取的。

      (引用链接:http://developer.android.com/guide/topics/location/strategies.html

      注意:如果您同时使用 NETWORK_PROVIDER 和 GPS_PROVIDER,那么您只需要请求 ACCESS_FINE_LOCATION 权限,因为它包含两个提供商的权限。 (ACCESS_COARSE_LOCATION 的权限仅包括 NETWORK_PROVIDER 的权限。 )

      您的手机在未启用 gps 的情况下如何显示 gps 图标,我怀疑这是可能的。

      【讨论】:

        【解决方案3】:

        使用 HTC One (M7),APP 有权使用 GPS,这使得“GPS”公平游戏 - ('GPS' = 'GPS Spoofer', AGPS [如果允许],一个使用 WiFi 和 GPS [因此位置几乎总是立即可用],当然还有手机的真正硬件 GPS / GLONASS / Galileo / 等)。

        HTC UI 有一个使用 GPS 的应用程序图标(无论手机认为 Provider 是什么,一些 APP 都会检查 Provider;他们不接受欺骗性位置,例如:大多数订阅 APP、Google Play 商店、缩写 GPS;))。

        硬件 GPS 出现第二个图标。它在等待足够的卫星时闪烁。在室内,没有 WiFi,有 AGPS,我可以在 1/2 分钟内锁定。

        您可能希望在收到 LC 消息时检查错误,因为如果您的距离超过 100 M,那么您真的不知道自己在哪里,并且可能没有有效的位置;来自另一个(弱)卫星的未决计算可能足以让您低于 50 M 错误,此时您应该开始接受该位置为有效(您的 APP 可能希望使用坐标记录错误,然后可以用圆圈显示位置表示不确定性)。

        在开发时,您希望确定购买最流行的手机(这样您就可以测试真正的硬件,并支持最大数量的客户),并购买一些带有您想要 Android 应用程序的硬件的手机控制 - 在您的情况下,购买具有 不同 GPS 硬件的手机,对于其他人,他们可能需要购买一些具有不同相机硬件(或 WiFi 芯片等)的手机。

        在 Android 的 Cell Phone Mfgs 版本、他们的 UI 和他们的 GPS 硬件运行方式(以及您安装的其他应用程序,如 Spoofer)之间,您有很多变量需要您的程序处理,而且还有很多必须允许在尽可能多的设备上进行相同操作的情况(错误返回)。

        【讨论】:

          猜你喜欢
          • 2012-02-22
          • 1970-01-01
          • 2014-05-04
          • 2011-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多