我只是想知道这个,因为它没有意义。
我有一个我连接的GoogleApiClient
,之后我使用
LocationServices.FusedLocationApi.requestLocationUpdates(
googleApiClient, mLocationRequest, this);
现在,奇怪的是- onLocationChanged(Location location)
被调用,即使我把手机放在飞行模式!没有互联网,我仍然得到位置更新…这怎么可能呢?这些更新是否可靠和准确?
通常情况下,位置是基于一个或多个传感器计算的。数据包括:
- 蜂窝网络。
- 周边Wi-Fi网络。
- 周围蓝牙信标。
- GPS。
前3种方法需要无线电既可以监听又可以广播无线电信号,但是GPS只监听卫星广播的信号,因为它不广播任何东西。当你激活飞行模式时,你基本上是告诉设备停止广播任何类型的信号(为了避免干扰飞机),然而,由于GPS芯片不广播任何东西,它可以继续收听卫星信号,因此,报告你的设备当前位置。
您可以通过调用
以编程方式检测位置对象的准确性: location.getAccuracy();
以米为单位的定位精度。
编辑:让我补充一些你可能会感兴趣的要点:- GPS第一次修复是真的很慢,如果它没有任何其他无线电的帮助。它可能需要分钟才能看到第一个位置。
- GPS需要清晰的天空视野来接收信号。所以它不能在室内工作。 与其他技术相比,GPS是更耗电的定位方式之一。
在没有互联网或任何更新的情况下,它返回您最后知道的位置。即使在飞行模式下,你可能仍然会得到它,它只会在有新的位置更新时才会改变在得到