调用requestLocationUpdates后,位置服务是否至少发送了一个位置?

时间:2017-05-04 16:20:10

标签: android android-location android-fusedlocation

使用LocationServices.FusedLocationApi.requestLocationUpdates设置接收位置更新时,我需要确保至少获得一个位置。

例如,如果设备已经存在了很长时间,那么在调用LocationServices.FusedLocationApi.requestLocationUpdates后,它是否会在最后一个已知位置触发?或者我是否也必须致电LocationServices.FusedLocationApi.getLastLocation

1 个答案:

答案 0 :(得分:1)

根据我的经验,您必须将LocationServices.FusedLocationApi.getLastLocation()称为保证立即位置对象,即使该方法可能会在设备重启后立即返回null

LocationServices.FusedLocationApi.requestLocationUpdates()会在新的或相对较新的位置可用时与您的请求参数相匹配,在准确性,能量等方面向您回拨一个位置,但如果没有与您的参数匹配的位置,可用它可能不会回电一段时间。例如,如果您请求需要GPS的高精度位置,并且最近未使用GPS并且设备位于阻止GPS信号接收的位置,则在设备再次获得GPS信号之前您可能看不到回叫。