0

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

我有一个GoogleApiClient我连接的,然后我请求使用位置更新

LocationServices.FusedLocationApi.requestLocationUpdates(
googleApiClient, mLocationRequest, this);

现在,奇怪的是 -onLocationChanged(Location location)即使我将手机置于飞行模式时也会被调用!没有互联网,我仍然可以获取位置更新.. 这怎么可能?这些更新可靠和准确吗?

4

2 回答 2

0

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

  • 蜂窝网络。
  • 周围的 Wi-Fi 网络。
  • 周围的蓝牙信标。
  • 全球定位系统。

前 3 种方法需要能够收听和广播无线电信号的收音机,但是 GPS 只收听卫星广播的信号,因为它不广播任何内容。当您激活飞行模式时,您基本上是在告诉设备停止广播任何类型的信号(以避免干扰飞机),但是由于 GPS 芯片不广播任何内容,因此可以预期它会继续收听卫星信号,从而向您报告设备的当前位置。

您可以通过调用以编程方式检测位置对象的准确性:

location.getAccuracy();

这是以米为单位的位置精度。

编辑:让我添加一些您可能会感兴趣的要点:

  • 如果没有任何其他无线电的帮助,GPS 首次修复真的很慢。您可能需要几分钟才能看到第一个位置。
  • GPS 需要清晰的天空视野才能接收信号。所以在室内是行不通的。
  • 与其他技术相比,GPS 是一种更耗电的定位方式。
于 2016-10-19T15:18:11.117 回答
0

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

于 2016-10-19T22:20:33.087 回答