Flutter-geolocator: Nur zulassen, während die App in Android 10 verwendet wird, gibt GeolocationStatus.denied zurück

Erstellt am 3. Okt. 2019  ·  37Kommentare  ·  Quelle: Baseflow/flutter-geolocator

🐛 Fehlerbericht

Wenn Sie Nur bei Verwendung der App zulassen auswählen, gibt die neue Option in Android 10 Geolocator().checkGeolocationPermissionStatus() GeolocationStatus.denied
Screenshot_1570103723

Version: 5.1.4

Plattform:
:Roboter: Android

android in progress

Hilfreichster Kommentar

Ich habe das gleiche Problem, wenn ich Version 5.1.4+1 verwende und mit SDK 28 kompiliere. Wenn ich mit SDK 29 kompiliere, funktioniert es. Ausführen auf einem Pixel 3a mit Android 10.

Ich kann bestätigen, dass die Einstellung von compileSdkVersion und targetSdkVersion auf 29 dieses Problem behoben hat.

Alle 37 Kommentare

Könnten Sie mir mehr über den Code sagen, der GeolocationStatus.denied zurückgibt?

Ich kann es mit der Beispiel-App reproduzieren.
Probieren Sie es einfach mit einem Android 10-Emulator aus.

Behebt der Emulator den Fehler GeolocationStatus.denied?

ich bin mir nicht sicher ob ich verstehe was du meinst

Könnten Sie mir einige Details zum Code und zu dem, was Sie erstellen möchten, mitteilen? Ich versuche, Ihr Problem zu reproduzieren, aber ich benötige weitere Informationen.

Testen Sie die Demo-App auf einem Android-Emulator mit Android 10
untitled

Ich habe dieses Problem reproduziert und bin zu dem Schluss gekommen, dass die Standorteinstellungen des Geräts deaktiviert waren. Um dieses Problem zu beheben, gehen Sie zu Einstellungen > Standort > Standort verwenden > Ein .

die Lage gedreht wurde auf I geprüft, also wenn ich die ganze Zeit es als selbstverständlich wählen

untitled

Die Ausgabe der App besagt, dass Sie FusedLocationProvider verwenden. Es wird empfohlen, die Google Play-Dienste Version 11.6.0 oder höher zu verwenden, die Fehlerbehebungen für diese Klasse enthält.

https://imgur.com/a/egX6z6t

Wie Sie sehen, verwende ich die Google Play-Dienste 19.2.75 und der Standort ist aktiviert

Es ist eine völlig neue Berechtigung im neuen Android 10. Es sollte weder Allowed noch Denied geben, da es andere Prüfungen erfordert.

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

@humazed Was versuchen Sie mit der Methode Geolocator().checkGeolocationPermissionStatus() zu erreichen? Ich erhalte keine Fehlermeldungen, wenn ich die Standorteinstellungen immer auf Erlaubt setze.

Ich benutze es für die Berechtigungsprüfung, und sogar die Demo-App verwendet es und es funktioniert nicht.
Und das Problem tritt nur auf, wenn Sie nur während der Verwendung der App zulassen

Am Do, 10.10.2019 um 10:09 Stijn van Woerkom [email protected]
schrieb:

@humazed https://github.com/humazed Was versuchst du damit zu erreichen ?
die Methode Geolocator().checkGeolocationPermissionStatus()? ich bekomme keine
Fehler, wenn ich die Standorteinstellungen auf "Immer erlaubt" setze.


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/BaseflowIT/flutter-geolocator/issues/334?email_source=notifications&email_token=ACDNYJTFXDG2QBXZGR24XQTQN3PLPA5CNFSM4I5CDEP2YY3PNVWWK3TUL52HS4DFVREXG43VMVBJKTORDN5MVXBJKTORDN5MVXBW63LN5MVXBJKTORDN5MVWK3TUL52HS4DFVREXG43VMVBJKTORDN3
oder abmelden
https://github.com/notifications/unsubscribe-auth/ACDNYJS7PSSNNQPH3S7HBWTQN3PLPANCNFSM4I5CDEPQ
.

@humazed Ich habe die Demo-App im neuen Android 10 und mit der Methode Geolocator().checkGeolocationPermissionStatus() reproduziert und 0 Fehler abgerufen, wenn ich dies nur während der Verwendung der App zulassen möchte. Könntest du mir deinen Code schicken, damit ich ihn mir anschauen kann?

Ich habe das Repo gerade geklont und ohne Änderungen ausgeführt

Ich habe sogar einen neuen Emulator erstellt, falls mein aktueller ein Problem oder ähnliches hat, aber das gleiche Verhalten zeigt

Ich denke, das Problem würde eher von den Einstellungen des Emulators abhängen. Die App gibt an, dass es Probleme mit den Google Play-Diensten gibt. Verwenden Sie ein Netzwerk oder befinden Sie sich an einem Standort, der die Google Play-Dienste nicht unterstützt?

Ich habe es mit einem neuen Emulator versucht, aber das Problem ist das gleiche

Die App funktioniert gut für alle Versionen niedriger als Android10

In den von mir bereitgestellten Gifs zeige ich die Version der Google Play-Dienste und der Standort ist aktiviert

Ich habe das gleiche Problem, wenn ich Version 5.1.4+1 verwende und mit SDK 28 kompiliere. Wenn ich mit SDK 29 kompiliere, funktioniert es. Ausführen auf einem Pixel 3a mit Android 10.

Ich habe das gleiche Problem, wenn ich Version 5.1.4+1 verwende und mit SDK 28 kompiliere. Wenn ich mit SDK 29 kompiliere, funktioniert es. Ausführen auf einem Pixel 3a mit Android 10.

Ich kann bestätigen, dass die Einstellung von compileSdkVersion und targetSdkVersion auf 29 dieses Problem behoben hat.

Ich habe das gleiche Problem.

Das sehe ich auch bei iOS. getCurrentPosition() zeigt ein Dialogfeld an, um den Standort immer zu aktivieren oder den Standort während der Verwendung der App zu aktivieren oder den Standortzugriff zu verweigern. Die Auswahl von "Bei Verwendung der App aktivieren" führt zu einer Ausnahme mit dem Fehler "PERMISISON_DENIED"

Ich verwende Geolocator 5.1.3

Ein ähnlicher Fehler wird auf Pixel 4 reproduziert.

Gleicher Fehler.
Samsung Galaxy S10 Plus, wenn Sie auf "Zugriff während der Nutzung beibehalten" klicken, erhalten Sie PermissionStatus.denied

Wir arbeiten derzeit an einer neuen Version des Standortberechtigungs-Plugins. Diese neue Version beinhaltet den respektierten Zugriff während der Nutzung und gibt PermissionStatus.denied nicht mehr zurück.

Urgh - Ich habe gerade festgestellt, dass ich das gleiche Problem bei einer Produktions-App habe. Ich hatte fälschlicherweise angenommen, dass diese Methode PermissionStatus.granted zurückgeben würde, wenn ein Benutzer In-Use-Zugriffsberechtigungen erteilt - also kann ich mich anscheinend nicht mehr darauf verlassen.

BEARBEITEN: Lesen Sie zwei Stunden später den Rest des Threads und stellen Sie fest, dass der Vorschlag von "Ich kann bestätigen, dass das Setzen von compileSdkVersion und targetSdkVersion auf 29 dieses Problem behoben hat." funktioniert.

"Ich kann bestätigen, dass das Setzen von "compileSdkVersion" und "targetSdkVersion" auf 29 dieses Problem behoben hat." hat das Problem gelöst, bis ich dies in der AndroidManifest.xml hinzugefügt habe

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

@JBBx2016 Wir arbeiten an den Berechtigungen für android.permissions.ACCES_BACKGROUND_LOCATION. Wenn die Berechtigungen behoben sind, könnte dies Ihren Fehler beheben.

Irgendein Update?

irgendein Update?

Irgendein Update

Funktioniert nicht auf Android 10-Geräten. :|

Als vorübergehenden Workaround können Sie my fork verwenden
Zweigmeister
wo ich Berechtigungssachen von offensichtlich defekten location_permissions in ein anderes Plugin permission_handler verschoben habe

Meine App funktioniert nach dem PopUp des Google Play-Dienstes einfach nicht mehr, was auch immer ich mit "Ablehnen", "Autorisieren" usw. mit Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high); beantworte
und am besten funktioniert es gut
Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.best);
Android 10 mit Emulator, neuestes stabiles Zweigflattern.

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

Sie müssen die Berechtigung in Parametern übergeben.
GeolocationPermission.locationWhenInUse

In Version 6.0.0 behoben

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen