Rugido Gronmo
Me topé con este mensaje recientemente, y estaba bastante seguro de que este constructor no estaba en desuso en versiones anteriores a la 18.0.0, pero no puedo encontrar información en ninguna parte de que este haya quedado en desuso tampoco.
¿Y qué deberíamos usar en su lugar? ¿Hay otra forma de crear un locationRequest
?
Kunu
Sí, el constructor LocationRequest está en desuso. Puedes usar su método estático LocationRequest.create()
para crear una solicitud de ubicación.
Kotlin:
locationRequest = LocationRequest.create().apply {
interval = 100
fastestInterval = 50
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
maxWaitTime = 100
}
Java:
locationRequest = LocationRequest.create()
.setInterval(100)
.setFastestInterval(3000)
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setMaxWaitTime(100);
Actualizar
Como señaló @Shimon LocationRequest.PRIORITY_HIGH_ACCURACY ahora está en desuso, así que en su lugar use
Prioridad.PRIORITY_HIGH_ACCURACY
-
Ah !! Muy bien ! ¿Desde qué versión se introdujo esta?
– Rugido Grønmo
5 de marzo de 2021 a las 9:24
-
Creo que después de que el constructor de la versión 18.0.0 quedó en desuso. LocationRequest.create() siempre estuvo allí para crear una solicitud, sin embargo, después de la versión 18, agregaron
setWaitForAccurateLocation(true)
a su LocationRequest.– Kunú
5 de marzo de 2021 a las 9:37
-
ahora esta en desuso
– Sadique Khan
24 de junio de 2022 a las 11:18
-
LocationRequest.create()
ahora está en desuso. Deberías usarLocationRequest.Builder()
– Joaquín Iurchuk
30 oct 2022 a las 21:26
-
@KonstantinKonopko asegúrese de estar usando
implementation "com.google.android.gms:play-services-location:21.0.0"
. De esta manera, no debería usar LocationBuilder de API 31, sino Play Services en su lugar.– Joaquín Iurchuk
4 de noviembre de 2022 a las 20:27
Rugido Gronmo
LocationRequest.create().apply{ ... }
ahora también está en desuso.
Por favor use LocationRequest.Builder()
en cambio. ES decir, así:
(locationInterval
, locationFastestInterval
y locationMaxWaitTime
corresponde a los valores usados antes al usar create()
)
locationRequest = LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, locationInterval)
.setWaitForAccurateLocation(false)
.setMinUpdateIntervalMillis(locationFastestInterval)
.setMaxUpdateDelayMillis(locationMaxWaitTime)
.build()
Lea más aquí: https://developer.android.com/reference/android/location/LocationRequest.Builder
-
No estoy seguro de si es así como funciona Kotlin, pero para Java se necesitaría el
new
antes deLocationRequest.Builder(...)
–Anatol Bivol
30 de octubre de 2022 a las 6:36
-
@AnatolBivol En kotlin normalmente no lo necesitas.
– Rugido Grønmo
31 oct 2022 a las 16:06
-
Builder
solo tiene un parámetro, vea el enlace agregado en la respuesta– Konstantín Konopko
3 de noviembre de 2022 a las 19:39
-
@KonstantinKonopko, sí, tienes razón. Hice referencia al enlace incorrecto, agregué el enlace real a continuación como alternativa.
– Rugido Grønmo
4 de noviembre de 2022 a las 12:09
Esta línea ahora está en desuso: prioridad = LocationRequest.PRIORITY_HIGH_ACCURACY
reemplazar con prioridad = Priority.PRIORITY_HIGH_ACCURACY
Para cualquiera que se enfrente a este error en geolocator 8.0.1
de Flutter. Intenta editar FusedLocationClient.java:199
por ahora. Luego espere a que el autor actualice el paquete pub
De
LocationRequest locationRequest = new LocationRequest();
A
LocationRequest locationRequest = LocationRequest.create();
ACTUALIZAR:
Constante PRIORITY_HIGH_ACCURACY
es un uso obsoleto Priority.PRIORITY_HIGH_ACCURACY
en cambio.
private fun updateLocationTracking(isTracking: Boolean) {
if(isTracking) {
if(TrackingUtility.hasLocationPermissions(this)) {
val request = LocationRequest.create().apply {
interval = LOCATION_UPDATE_INTERVAL
fastestInterval = FASTEST_LOCATION_INTERVAL
priority = Priority.PRIORITY_HIGH_ACCURACY
}
}
Rathod Ruturaj sinh
LocationRequest locationRequest = LocationRequest.create() //if you want access of variable
.setInterval(100)
.setFastestInterval(3000)
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setNumUpdates(1)
.setMaxWaitTime(100);
TRIKONINFOSISTEMAS
Para JAVA, lo arreglé usando el siguiente código
private LocationRequest locationRequest;
Dentro de onCreate()
locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 100)
.setWaitForAccurateLocation(false)
.setMinUpdateIntervalMillis(2000)
.setMaxUpdateDelayMillis(100)
.build();