在使用 LocationServices.FusedLocationApi.requestLocationUpdates
设置接收位置更新时,我需要确保至少获得一个位置。
例如,如果设备已经静止了很长时间,在调用 LocationServices.FusedLocationApi.requestLocationUpdates
之后,它是否会触发最后已知的位置?还是我也必须调用 LocationServices.FusedLocationApi.getLastLocation
?
最佳答案
根据我的经验,您必须调用 LocationServices.FusedLocationApi.getLastLocation()
以确保立即获得位置对象,即使该方法也可能在设备重启后立即返回 null
。
LocationServices.FusedLocationApi.requestLocationUpdates()
将在有新的或相对较新的位置可用且在准确性、能量等方面与您的请求参数相匹配时给您回电,但如果没有与您的参数匹配的位置可用,它可能会暂时不会回拨。例如,如果您请求需要 GPS 的高精度位置,并且最近没有使用 GPS,并且设备位于阻止 GPS 信号接收的位置,则在设备再次获得 GPS 信号之前,您可能看不到回调。
关于android - 调用 requestLocationUpdates 后,位置服务是否至少发送了一个位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43788155/