使用LocationServices.FusedLocationApi.requestLocationUpdates
设置接收位置更新时,我需要确保至少获得一个位置。
例如,如果设备已经存在了很长时间,那么在调用LocationServices.FusedLocationApi.requestLocationUpdates
后,它是否会在最后一个已知位置触发?或者我是否也必须致电LocationServices.FusedLocationApi.getLastLocation
?
答案 0 :(得分:1)
根据我的经验,您必须将LocationServices.FusedLocationApi.getLastLocation()
称为保证立即位置对象,即使该方法可能会在设备重启后立即返回null
。
LocationServices.FusedLocationApi.requestLocationUpdates()
会在新的或相对较新的位置可用时与您的请求参数相匹配,在准确性,能量等方面向您回拨一个位置,但如果没有与您的参数匹配的位置,可用它可能不会回电一段时间。例如,如果您请求需要GPS的高精度位置,并且最近未使用GPS并且设备位于阻止GPS信号接收的位置,则在设备再次获得GPS信号之前您可能看不到回叫。