Flutter-geolocator: Autoriser uniquement lors de l'utilisation de l'application dans Android 10 renvoie GeolocationStatus.denied

Créé le 3 oct. 2019  ·  37Commentaires  ·  Source: Baseflow/flutter-geolocator

Rapport de bogue

lorsque vous sélectionnez Autoriser uniquement lors de l'utilisation de l'application, la nouvelle option dans Android 10 Geolocator().checkGeolocationPermissionStatus() renvoie GeolocationStatus.denied
Screenshot_1570103723

Version : 5.1.4

Plate-forme:
:robot: Android

android in progress

Commentaire le plus utile

J'ai le même problème si j'utilise la version 5.1.4+1 et que je compile avec le SDK 28. Si je compile sur le SDK 29, cela fonctionne. Exécuter cela sur un Pixel 3a sous Android 10.

Je peux confirmer que le réglage compileSdkVersion et targetSdkVersion à 29 a résolu ce problème.

Tous les 37 commentaires

Pouvez-vous m'en dire plus sur le code qui renvoie GeolocationStatus.denied ?

Je peux le reproduire avec l'exemple d'application.
essayez-le simplement avec un émulateur Android 10.

L'émulateur résout-il l'erreur GeolocationStatus.denied ?

je ne suis pas sûr de comprendre ce que tu veux dire

Pourriez-vous me donner quelques détails sur le code et ce que vous essayez de créer ? J'essaie de reproduire votre problème, mais j'ai besoin de plus d'informations.

essayez l'application de démonstration sur un émulateur Android avec Android 10
untitled

J'ai reproduit ce problème et suis arrivé à la conclusion que les paramètres de localisation de l'appareil étaient désactivés. Pour résoudre ce problème, accédez à Paramètres > Emplacement > Utiliser l'emplacement > Activé .

l'emplacement était activé, je l'ai vérifié, donc lorsque je choisis d' autoriser tout le temps qu'il a reconnu comme accordé.

untitled

La sortie de l'application indique que vous utilisez FusedLocationProvider. Il est recommandé d'utiliser les services Google Play version 11.6.0 ou supérieure, qui incluent des corrections de bogues pour cette classe.

https://imgur.com/a/egX6z6t

Comme vous pouvez le voir, j'utilise les services Google Play 19.2.75 et l'emplacement est activé

Il s'agit d'une toute nouvelle autorisation dans le nouvel Android 10. elle ne devrait ni autoriser ni refuser car elle nécessite des vérifications différentes.

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

@humazed Qu'essayez -vous de réaliser avec la méthode Geolocator().checkGeolocationPermissionStatus() ? Je ne reçois aucune erreur si je définis les paramètres de localisation sur Autorisé tout le temps.

Je l'utilise pour la vérification des autorisations, et même l'application de démonstration l'utilise et cela ne fonctionne pas.
Et le problème n'apparaît que lorsque vous choisissez d'autoriser uniquement lors de l'utilisation de l'application

Le jeu. 10 octobre 2019 à 10h09 Stijn van Woerkom [email protected]
a écrit:

@humazed https://github.com/humazed Qu'essayez -vous d'accomplir avec
la méthode Geolocator().checkGeolocationPermissionStatus() ? je n'en reçois aucun
erreurs si je définis les paramètres de localisation sur Autorisé tout le temps.

-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/BaseflowIT/flutter-geolocator/issues/334?email_source=notifications&email_token=ACDNYJTFXDG2QBXZGR24XQTQN3PLPA5CNFSM4I5CDEP2YY3PNVWWK3TUL52HS4DFVREXG43VMHZcomKEADNVLO15CNFSM4I5CDEP2YY3PNVWWK3TUL52HS4DFVREXG43VMHZcomKEADNVLO15
ou se désinscrire
https://github.com/notifications/unsubscribe-auth/ACDNYJS7PSSNNQPH3S7HBWTQN3PLPANCNFSM4I5CDEPQ
.

@humazed J'ai reproduit l'application de démonstration dans le nouvel Android 10 et avec la méthode Geolocator().checkGeolocationPermissionStatus() et récupéré 0 erreurs lorsque je choisis de n'autoriser que pendant l'utilisation de l'application. Pourrais-tu m'envoyer ton code pour que je puisse y jeter un oeil ?

Je viens de cloner le référentiel et de l'exécuter sans aucun changement

J'ai même créé un nouvel émulateur au cas où mon émulateur actuel aurait un problème ou quelque chose du genre mais obtenant le même comportement

Je pense que le problème dépendrait davantage des paramètres de l'émulateur. L'application indique qu'il y a des problèmes avec les services Google Play. Utilisez-vous un réseau ou vous trouvez-vous dans un endroit qui ne prend pas en charge les services Google Play ?

J'ai essayé avec un nouvel émulateur mais le problème est le même

L'application fonctionne bien pour toute version inférieure à Android10

Dans les gifs que j'ai fournis, je montre la version des services Google Play et l'emplacement est activé

J'ai le même problème si j'utilise la version 5.1.4+1 et que je compile avec le SDK 28. Si je compile sur le SDK 29, cela fonctionne. Exécuter cela sur un Pixel 3a sous Android 10.

J'ai le même problème si j'utilise la version 5.1.4+1 et que je compile avec le SDK 28. Si je compile sur le SDK 29, cela fonctionne. Exécuter cela sur un Pixel 3a sous Android 10.

Je peux confirmer que le réglage compileSdkVersion et targetSdkVersion à 29 a résolu ce problème.

J'ai le même problème.

Je le vois aussi avec iOS. getCurrentPosition () affiche une boîte de dialogue pour activer l'emplacement toujours ou activer l'emplacement lors de l'utilisation de l'application ou refuser l'accès à l'emplacement. La sélection de "Activer lors de l'utilisation de l'application" entraîne une exception avec une erreur "PERMISISON_DENIED"

J'utilise le géolocalisateur 5.1.3

Une erreur similaire est reproduite sur le Pixel 4.

Même problème.
Samsung Galaxy S10 Plus, lorsque vous cliquez sur "Conserver l'accès pendant l'utilisation", obtenez PermissionStatus.denied

Nous travaillons actuellement sur une nouvelle version du plugin d'autorisations de localisation. Cette nouvelle version inclut un accès en cours d'utilisation respecté et ne renvoie plus PermissionStatus.denied.

Urgh - Je viens de découvrir que je rencontre le même problème pour une application de production. J'avais supposé à tort que lorsqu'un utilisateur accordait des autorisations d'accès en cours d'utilisation, cette méthode renverrait PermissionStatus.granted - je ne peux donc plus m'y fier, semble-t-il.

EDIT : deux heures plus tard, lisez le reste du fil et réalisez que la suggestion de "Je peux confirmer que le réglage de compileSdkVersion et targetSdkVersion sur 29 a résolu ce problème". travaux.

"Je peux confirmer que la définition de compileSdkVersion et targetSdkVersion sur 29 a résolu ce problème." résolu le problème jusqu'à ce que je l'ajoute dans AndroidManifest.xml

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

@JBBx2016 Nous travaillons sur les autorisations android.permissions.ACCES_BACKGROUND_LOCATION. Une fois les autorisations corrigées, cela pourrait résoudre votre erreur.

Toute mise à jour?

toute mise à jour?

Toute mise à jour

Ne fonctionne pas sur les appareils Android 10. :|

Comme solution de contournement temporaire, vous pouvez utiliser mon fork
Maître de branche
où j'ai déplacé des éléments d'autorisation de location_permissions manifestement cassé vers un autre plugin permission_handler

Mon application cesse de fonctionner après le service Google Play PopUp, quoi que je réponde "Refuser", "Autoriser", etc. avec Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
et avec le meilleur ça marche bien
Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.best);
Android 10 avec émulateur, dernier flutter de branche stable.

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

Besoin de passer l'autorisation dans les paramètres.
GeolocationPermission.locationWhenInUse

Corrigé dans la version 6.0.0

Cette page vous a été utile?
0 / 5 - 0 notes