Android 如何使用fusedLocationProvider以完全恒定的间隔(1分钟)获取位置
我想使用fusedLocationProvider获得具有精确常量间隔的位置 要求Android 如何使用fusedLocationProvider以完全恒定的间隔(1分钟)获取位置,android,kotlin,fusedlocationproviderapi,android-fusedlocation,fusedlocationproviderclient,Android,Kotlin,Fusedlocationproviderapi,Android Fusedlocation,Fusedlocationproviderclient,我想使用fusedLocationProvider获得具有精确常量间隔的位置 要求 以精确的恒定间隔(1分钟)获取位置 也可以在后台获取位置 因此,我开始服务,以获得位置。它给了我背景中的位置 但是我创建了如下的LocationRequest override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { locationRequest = LocationRequest.c
- 以精确的恒定间隔(1分钟)获取位置
- 也可以在后台获取位置
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
locationRequest = LocationRequest.create().apply {
interval = TimeUnit.SECONDS.toMillis(60)
fastestInterval = TimeUnit.SECONDS.toMillis(60)
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
}
locationCallback = object : LocationCallback() {
override fun onLocationResult(locationResult: LocationResult) {
super.onLocationResult(locationResult)
location = locationResult.lastLocation
}
}
startForeground(9999, generateNotification(location))
startLocationUpdates()
return START_STICKY
}
private fun startLocationUpdates() {
Log.d("LocationService", "startLocationUpdates()")
val locationRequest = createLocationRequest() ?: return
fusedLocationProviderClient.requestLocationUpdates(
locationRequest,
locationCallback,
null)
}
但更新后的位置不会经常给出
有时间隔1分钟,有时间隔1分钟20秒
我不知道为什么会发生这种情况。“我想使用fusedLocationProvider获得具有精确恒定间隔的位置”-这是不可能的。“我不知道为什么会发生这种情况”——这就是它的行为记录
fastestInterval
是您获取位置更新的最快速度。这不是更新之间的确切时间。更新的到达速度可能慢于fastestInterval
。此外,由于无法保证设备当前能够确定其位置,因此更新无法到达。