如何在没有可用位置的情况下加入GoogleApiClient位置请求,并在可用位置时再次发送请求

时间:2015-07-03 14:03:50

标签: android google-api-client fusedlocationproviderapi

我们制作了一个跟踪应用,我们使用融合位置提供程序API来跟踪用户位置。此外,GoogleApiClient与LocationServices api结合使用。

在应用程序中,我们以2分钟的时间间隔跟踪位置。有时位置可能在某些情况下不可用,例如用户位于地下室,其中gps无法提供位置,并且没有可用于获取位置的Wi-Fi或移动网络。

让我们为每个请求提供位置可用性表。

下午2点 好 2:02 好 2:04 没有位置 2:06 没有位置 2:08 行

我们在表格中总共有五个位置请求。

下午2点和2点02分位置可用。

在2:04和2:06位置不可用。(用户在地下室或gps,wifi和移动网络无法提供位置的其他地方)

在2:08再次我们有位置。

2:04时位置请求会发生什么,它会继续尝试获取位置,或者被android操作系统杀死?

在2:06再次调用新的位置请求。在这种情况下,它将替换先前的位置请求或位置请求的队列将被作出?这意味着总共2个位置请求将继续尝试获取位置。

在2:08当位置可用时,所有请求都会被取消,并且会为最近的位置请求提供位置吗?

1 个答案:

答案 0 :(得分:0)

FusedLocationProviderAPI使用最容易获得的定位服务。如果您每2分钟发出一次位置更新请求,那么该服务将提供最新的可用位置。

因此,如果位置不可用,则无需取消请求。

话虽如此,如果您想对位置请求进行微观管理,您可以计算最新位置是否已经从可接受的2.00度经度/纬度偏差发生变化。