android - 即使没有可用的互联网,也会调用 onLocationChanged
Posted
技术标签:
【中文标题】android - 即使没有可用的互联网,也会调用 onLocationChanged【英文标题】:android - onLocationChanged is called even when there is not internet available 【发布时间】:2017-03-01 07:42:53 【问题描述】:我只是想知道这个,因为它没有意义。
我有一个 GoogleApiClient
连接,然后我使用
LocationServices.FusedLocationApi.requestLocationUpdates(
googleApiClient, mLocationRequest, this);
现在,奇怪的是 - 即使我将手机置于飞行模式,onLocationChanged(Location location)
也会被调用!没有互联网,我仍然可以获取位置更新.. 这怎么可能?这些更新可靠且准确吗?
【问题讨论】:
【参考方案1】:在常规情况下,位置是基于一个或多个传感器计算的。数据包括:
蜂窝网络。 周围的 Wi-Fi 网络。 周围的蓝牙信标。 全球定位系统。前 3 种方法需要无线电既可以收听广播无线电信号,但 GPS 只收听卫星广播的信号,因为它不广播任何内容。 当您激活飞行模式时,您基本上是在告诉设备停止广播任何类型的信号(以避免干扰飞机),但是由于 GPS 芯片不广播任何内容,因此可以预期它会继续收听卫星信号,从而向您报告设备的当前位置。
您可以通过调用以编程方式检测位置对象的准确性:
location.getAccuracy();
这是位置的精确度,以米为单位。
编辑:让我添加一些您可能会感兴趣的要点:
如果没有任何其他无线电的帮助,GPS 第一次定位真的很慢。您可能需要 分钟 才能看到第一个位置。 GPS 需要清晰的天空视野才能接收信号。所以在室内是行不通的。 与其他技术相比,GPS 是一种更耗电的定位方式。【讨论】:
【参考方案2】:在没有互联网或任何更新的情况下,它会返回您最后知道的位置。所以即使在飞行模式下,你可能仍然会得到它,它只会在有新的位置更新后才会改变,这将或可能需要互联网才能获得
【讨论】:
以上是关于android - 即使没有可用的互联网,也会调用 onLocationChanged的主要内容,如果未能解决你的问题,请参考以下文章
即使数据存在并出现在表中,jQuery 数据表也会显示“表中没有可用数据”[重复]
即使我的代码没有更改,也会出现“Android 资源链接失败”