我有这个用于请求位置更新的代码:
private var fusedLocationClient = LocationServices.getFusedLocationProviderClient(context)
locationRequest = LocationRequest.create().apply {
priority =
when (locationProviderType ?: SettingsProvider.getProviderType(context)) {
LocationChangeProviderType.HIGH_ACCURACY -> LocationRequest.PRIORITY_HIGH_ACCURACY
LocationChangeProviderType.BALANCED -> LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY
}
interval = timeIntervalInMillis
maxWaitTime = timeIntervalInMillis
smallestDisplacement = minDistanceInMeters
}
fusedLocationClient.requestLocationUpdates(
locationRequest,
locationCallback,
Looper.getMainLooper()
)
timeIntervalInMillis= 1000
,minDistanceInMeters = 10f
。
但是提供程序不会返回具有此条件的更新。例如,即使我走得很慢,我也只能在 100 米内步行和查看更新两次。即使使用 PRIORITY_HIGH_ACCURACY,也会发生这种情况。
如何解决?