我只是想知道这件事,因为它没有意义。
我有一个GoogleApiClient
我连接,之后我使用
LocationServices.FusedLocationApi.requestLocationUpdates(
googleApiClient, mLocationRequest, this);
现在,奇怪的是,即使我将手机置于飞机模式,也会调用onLocationChanged(Location location)
!没有互联网,我仍然得到位置更新..这怎么可能?那些更新是否可靠和准确?
答案 0 :(得分:0)
在常规情况下,位置是基于一个或多个传感器计算的。数据包括:
前3种方法要求无线电可以收听和广播无线电信号,但GPS只监听卫星广播的信号,因为它不会广播任何信号。 当您激活飞行模式时,您基本上是告诉设备停止广播任何类型的信号(为了避免干扰飞机),但是由于GPS芯片没有广播任何东西,因此可以预期继续收听卫星信号,因此,报告您设备当前位置。
您可以通过调用以编程方式检测位置对象的准确性:
location.getAccuracy();
以米为单位的准确度。
编辑:让我补充一些可能对您有用的重点:
答案 1 :(得分:0)
如果没有互联网或任何更新,它会返回您最后知道的位置。所以即使在飞行模式下,你可能仍会得到它,它只会在新的位置更新后更改,这将在获得之前或可能需要互联网