Flutter-geolocator: Geolocator.getCurrentPosition() gibt keinen Breiten- oder Längengrad zurück.

Erstellt am 28. Nov. 2020  ·  3Kommentare  ·  Quelle: Baseflow/flutter-geolocator

Geolocator.getCurrentPosition() funktioniert nicht für Emulator. Es funktioniert jedoch auf einem echten Gerät.

import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';

class LoadingScreen extends StatefulWidget {
  <strong i="6">@override</strong>
  _LoadingScreenState createState() => _LoadingScreenState();
}

class _LoadingScreenState extends State<LoadingScreen> {
  void getLocation() async {
    Position position = await Geolocator.getCurrentPosition(
      desiredAccuracy: LocationAccuracy.low,
    );

    print(position);
  }

  <strong i="7">@override</strong>
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: RaisedButton(
          onPressed: () {
            getLocation();
          },
          child: Text('Get Location'),
        ),
      ),
    );
  }
}

Dies ist der Code und print(position) druckt keine Breiten- und Längengrade.

needs more info

Hilfreichster Kommentar

Ich arbeite an einem Android-Emulator. Ich brauche keinen hochgenauen Standort, also habe ich nur die Erlaubnis für den Zugriff auf den groben Standort angefordert. Nachdem ich den Kommentar von @mvanbeusekom gesehen hatte , wollte ich LocationAccuracy,high ausprobieren, nachdem ich die erforderliche Berechtigung <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> zum Manifest hinzugefügt hatte.

Nachdem ich diese Erlaubnis jedoch hinzugefügt hatte, funktionierten sowohl Anfragen mit niedriger als auch mit hoher Genauigkeit für mich. Interessant.

Alle 3 Kommentare

Testest du auf iOS oder Android?

Stellen Sie übrigens sicher, dass Sie Standortaktualisierungen auf dem Simulator/Emulator aktivieren. Dies kann in den Einstellungen des Simulators/Emulators erfolgen.

Auch der Simulator/Emulator spielt nicht immer gut mit LocationAccuracy.low , Sie könnten versuchen, dies auf eine höhere Ebene zu heben.

Ich arbeite an einem Android-Emulator. Ich brauche keinen hochgenauen Standort, also habe ich nur die Erlaubnis für den Zugriff auf den groben Standort angefordert. Nachdem ich den Kommentar von @mvanbeusekom gesehen hatte , wollte ich LocationAccuracy,high ausprobieren, nachdem ich die erforderliche Berechtigung <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> zum Manifest hinzugefügt hatte.

Nachdem ich diese Erlaubnis jedoch hinzugefügt hatte, funktionierten sowohl Anfragen mit niedriger als auch mit hoher Genauigkeit für mich. Interessant.

Ich werde dieses Thema vorerst schließen. Es ist ein bekanntes Problem, dass der Android-Emulator mit den COARSE-Berechtigungen nicht gut zurechtkommt. Dies liegt daran, dass der COARSE-Standort versucht, die Position basierend auf dem Mobilfunknetz zu triangulieren, das auf dem Emulator nicht verfügbar ist.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen