Flutter-geolocator: Permitir solo mientras usa la aplicación en Android 10 devuelve GeolocationStatus.denied

Creado en 3 oct. 2019  ·  37Comentarios  ·  Fuente: Baseflow/flutter-geolocator

🐛 Informe de error

al seleccionar Permitir solo mientras se usa la aplicación, la nueva opción en Android 10 Geolocator().checkGeolocationPermissionStatus() devuelve GeolocationStatus.denied
Screenshot_1570103723

Versión: 5.1.4

Plataforma:
: robot: Android

android in progress

Comentario más útil

Tengo el mismo problema si uso la versión 5.1.4 + 1 y compilo con SDK 28. Si compilo en SDK 29, funciona. Ejecutando esto en un Pixel 3a con Android 10.

Puedo confirmar que la configuración de compileSdkVersion y targetSdkVersion a 29 resolvió este problema.

Todos 37 comentarios

¿Podría contarme más sobre el código que devuelve GeolocationStatus.denied?

Puedo reproducirlo con la aplicación de muestra.
Pruébelo con un emulador de Android 10.

¿El emulador resuelve el error GeolocationStatus.denied?

No estoy seguro de entender lo que quieres decir

¿Podría decirme algunos detalles sobre el código y lo que está intentando crear? Estoy intentando reproducir su problema, pero necesito más información.

prueba la aplicación de demostración en un emulador de Android con Android 10
untitled

Reproduje este problema y llegué a la conclusión de que la configuración de ubicación del dispositivo estaba desactivada. Para solucionar este problema, vaya a Configuración > Ubicación > Usar ubicación > Activado .

la ubicación estaba encendida, la revisé, por lo tanto, cuando elijo permitir todo el tiempo, se reconoció como otorgado.

untitled

El resultado de la aplicación dice que está utilizando FusedLocationProvider. Se recomienda utilizar los servicios de Google Play versión 11.6.0 o superior, que incluye correcciones de errores para esta clase.

https://imgur.com/a/egX6z6t

Como puede ver, estoy usando los servicios de Google Play 19.2.75 y la ubicación está activada.

Es un permiso completamente nuevo en el nuevo Android 10. No debería otorgar Permitido o Denegado, ya que requiere diferentes comprobaciones.

https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_BACKGROUND_LOCATION

@humazed ¿Qué estás tratando de lograr con el método Geolocator (). checkGeolocationPermissionStatus ()? No obtengo ningún error si configuro la configuración de ubicación en Permitido todo el tiempo.

Lo uso para verificar los permisos, e incluso la aplicación de demostración lo usa y no funciona.
Y el problema solo aparece cuando elige permitir solo mientras usa la aplicación

El jueves 10 de octubre de 2019 a las 10:09 a.m. Stijn van Woerkom [email protected]
escribió:

@humazed https://github.com/humazed ¿Qué estás tratando de lograr con
el método Geolocator (). checkGeolocationPermissionStatus ()? No tengo ninguno
errores si configuro la configuración de ubicación en Permitido todo el tiempo.

-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/BaseflowIT/flutter-geolocator/issues/334?email_source=notifications&email_token=ACDNYJTFXDG2QBXZGR24XQTQN3PLPA5CNFSM4I5CDEP2YY3PNVWWK3TUL52GHS4DVMVREXWWK3TUL52HS4DFMVVREXWWK3TUL52HS4DMVVREX ,
o darse de baja
https://github.com/notifications/unsubscribe-auth/ACDNYJS7PSSNNQPH3S7HBWTQN3PLPANCNFSM4I5CDEPQ
.

@humazed Reproduje la aplicación de demostración en el nuevo Android 10 y con el método Geolocator (). checkGeolocationPermissionStatus () y recuperé 0 errores cuando elijo permitir solo mientras usaba la aplicación. ¿Podrías enviarme tu código para que pueda verlo?

Simplemente cloné el repositorio y lo ejecuté sin ningún cambio.

Incluso creé un nuevo emulador en caso de que mi actual tenga un problema o algo pero obteniendo el mismo comportamiento

Creo que el problema dependería más de la configuración del emulador. La aplicación indica que hay problemas con los servicios de Google Play. ¿Está utilizando una red o se encuentra en una ubicación que no admite los servicios de Google Play?

Lo he intentado con un emulador nuevo pero el problema es el mismo

La aplicación funciona bien para cualquier versión anterior a android10

En los gifs que proporcioné, estoy mostrando la versión de los servicios de Google Play y la ubicación está habilitada.

Tengo el mismo problema si uso la versión 5.1.4 + 1 y compilo con SDK 28. Si compilo en SDK 29, funciona. Ejecutando esto en un Pixel 3a con Android 10.

Tengo el mismo problema si uso la versión 5.1.4 + 1 y compilo con SDK 28. Si compilo en SDK 29, funciona. Ejecutando esto en un Pixel 3a con Android 10.

Puedo confirmar que la configuración de compileSdkVersion y targetSdkVersion a 29 resolvió este problema.

Tengo el mismo problema.

También veo eso con iOS. getCurrentPosition () muestra un cuadro de diálogo para habilitar la ubicación siempre o habilitar la ubicación mientras usa la aplicación o denegar el acceso a la ubicación. Seleccionar "Habilitar mientras se usa la aplicación" da como resultado una excepción con un error "PERMISISON_DENIED"

Estoy usando geolocator 5.1.3

Se reproduce un error similar en Pixel 4.

Mismo problema.
Samsung Galaxy S10 Plus, cuando haga clic en "Mantener el acceso mientras está en uso", obtenga PermissionStatus.denied

Actualmente estamos trabajando en una nueva versión del complemento de permisos de ubicación. Esta nueva versión incluye acceso respetado mientras está en uso y ya no devuelve PermissionStatus.denied.

Urgh, acabo de descubrir que estoy experimentando el mismo problema con una aplicación de producción. Había asumido erróneamente que cuando un usuario otorga permisos de acceso en uso, este método devolvería PermissionStatus.granted, por lo que parece que ya no puedo confiar en esto.

EDITAR: Dos horas después, leí el resto del hilo y me di cuenta de que la sugerencia de "Puedo confirmar que la configuración de compileSdkVersion y targetSdkVersion en 29 resolvió este problema". obras.

"Puedo confirmar que la configuración de compileSdkVersion y targetSdkVersion en 29 resolvió este problema". resolvió el problema hasta que agregué esto en el AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>

@ JBBx2016 Estamos trabajando en los permisos android.permissions.ACCES_BACKGROUND_LOCATION. Cuando se corrijan los permisos, podría solucionar su error.

¿Cualquier actualización?

¿cualquier actualización?

Cualquier actualización

No funciona en dispositivos con Android 10. : |

Como solución temporal, puede usar mi bifurcación
maestro de sucursal
donde moví cosas de permisos de location_permissions obviamente rotos a otro plugin allow_handler

Mi aplicación simplemente deja de funcionar después de la ventana emergente del servicio Google Play, lo que sea que responda "Denegar", "Autorizar", etc. con Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
y con lo mejor funciona bien
Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.best);
Android 10 con emulador, último flutter de rama estable.

Geolocator locator = Geolocator();
    locator
        .checkGeolocationPermissionStatus(
            locationPermission: GeolocationPermission.locationWhenInUse)

Necesita pasar permiso en params.
GeolocationPermission.locationWhenInUse

Corregido en la versión 6.0.0

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

samo92 picture samo92  ·  6Comentarios

seakmengc picture seakmengc  ·  3Comentarios

hectorAguero picture hectorAguero  ·  5Comentarios

DineshKachhot picture DineshKachhot  ·  7Comentarios

joesnarky picture joesnarky  ·  3Comentarios