onLocationChanged即使在没有互联网可用时也会被调用



我只是想知道这个,因为它没有意义。

我有一个我连接的GoogleApiClient,之后我使用

请求位置更新
LocationServices.FusedLocationApi.requestLocationUpdates(
googleApiClient, mLocationRequest, this);

现在,奇怪的是- onLocationChanged(Location location)被调用,即使我把手机放在飞行模式!没有互联网,我仍然得到位置更新…这怎么可能呢?这些更新是否可靠和准确?

通常情况下,位置是基于一个或多个传感器计算的。数据包括:

  • 蜂窝网络。
  • 周边Wi-Fi网络。
  • 周围蓝牙信标。
  • GPS。

前3种方法需要无线电既可以监听又可以广播无线电信号,但是GPS只监听卫星广播的信号,因为它不广播任何东西。当你激活飞行模式时,你基本上是告诉设备停止广播任何类型的信号(为了避免干扰飞机),然而,由于GPS芯片不广播任何东西,它可以继续收听卫星信号,因此,报告你的设备当前位置。

您可以通过调用

以编程方式检测位置对象的准确性:

location.getAccuracy();

以米为单位的定位精度。

编辑:让我补充一些你可能会感兴趣的要点:
  • GPS第一次修复是真的很慢,如果它没有任何其他无线电的帮助。它可能需要分钟才能看到第一个位置。
  • GPS需要清晰的天空视野来接收信号。所以它不能在室内工作。
  • 与其他技术相比,GPS是更耗电的定位方式之一。

在没有互联网或任何更新的情况下,它返回您最后知道的位置。即使在飞行模式下,你可能仍然会得到它,它只会在有新的位置更新时才会改变在得到

之前可能需要互联网

相关内容

  • 没有找到相关文章

最新更新