调用 requestLocationUpdates 后,位置服务是否至少发送了一个位置?
Is at least one location sent by location services after calling requestLocationUpdates?
在使用 LocationServices.FusedLocationApi.requestLocationUpdates
设置接收位置更新时,我需要确保至少获得一个位置。
例如,如果设备已经静止了很长时间,在调用 LocationServices.FusedLocationApi.requestLocationUpdates
之后它会在最后已知位置触发吗?或者我也必须打电话给 LocationServices.FusedLocationApi.getLastLocation
吗?
根据我的经验,您必须调用 LocationServices.FusedLocationApi.getLastLocation()
才能保证立即获得位置对象,即使是该方法也可能 return null
在设备重新启动后立即。
LocationServices.FusedLocationApi.requestLocationUpdates()
会在有可用的新位置或相对较新的位置在精度、能量等方面与您的请求参数匹配时给您回电,但如果没有位置与您的匹配参数可用它可能不会回调一段时间。例如,如果您请求需要 GPS 的高精度位置,并且最近没有使用 GPS,并且设备位于阻止 GPS 信号接收的位置,则在设备再次获得 GPS 信号之前,您可能看不到回调。
在使用 LocationServices.FusedLocationApi.requestLocationUpdates
设置接收位置更新时,我需要确保至少获得一个位置。
例如,如果设备已经静止了很长时间,在调用 LocationServices.FusedLocationApi.requestLocationUpdates
之后它会在最后已知位置触发吗?或者我也必须打电话给 LocationServices.FusedLocationApi.getLastLocation
吗?
根据我的经验,您必须调用 LocationServices.FusedLocationApi.getLastLocation()
才能保证立即获得位置对象,即使是该方法也可能 return null
在设备重新启动后立即。
LocationServices.FusedLocationApi.requestLocationUpdates()
会在有可用的新位置或相对较新的位置在精度、能量等方面与您的请求参数匹配时给您回电,但如果没有位置与您的匹配参数可用它可能不会回调一段时间。例如,如果您请求需要 GPS 的高精度位置,并且最近没有使用 GPS,并且设备位于阻止 GPS 信号接收的位置,则在设备再次获得 GPS 信号之前,您可能看不到回调。