¿El ‘constructor LocationRequest ()’ está en desuso en google maps v2?

3 minutos de lectura

Avatar de usuario de Roar Grønmo
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 ?

mensaje quejándose de que LocationRequest() está en desuso

Avatar de usuario de Kunu
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 usar LocationRequest.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


Avatar de usuario de Roar Grønmo
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

y aquí:
https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.Builder

  • No estoy seguro de si es así como funciona Kotlin, pero para Java se necesitaría el new antes de LocationRequest.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();

Este es el LocationRequest clase
ingrese la descripción de la imagen aquí

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
                }
} 

Avatar de usuario de Rathod Ruturaj sinh
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);

Avatar de usuario de TRIKONINFOSYSTEMS
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();

¿Ha sido útil esta solución?