Flutter-geolocator: Geolocator.getCurrentPosition() ne renvoie pas la latitude ou la longitude.

Créé le 28 nov. 2020  ·  3Commentaires  ·  Source: Baseflow/flutter-geolocator

Geolocator.getCurrentPosition() ne fonctionne pas pour l'émulateur. Cependant, il fonctionne sur un appareil réel.

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'),
        ),
      ),
    );
  }
}

C'est le code et print(position) n'imprime pas les latitudes et longitudes.

needs more info

Commentaire le plus utile

Je travaille sur un émulateur Android. Je n'ai pas besoin d'obtenir un emplacement de haute précision, j'ai donc seulement demandé l'autorisation d'accéder à l'emplacement grossier. Après avoir vu le commentaire de @mvanbeusekom , je voulais essayer LocationAccuracy,high après avoir ajouté l'autorisation nécessaire qui est <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> au manifeste.

Cependant, après avoir ajouté cette autorisation, les demandes de précision faible et élevée ont fonctionné pour moi. Intéressant.

Tous les 3 commentaires

Testez-vous sur iOS ou Android ?

Au fait, assurez-vous d'activer les mises à jour de localisation sur le simulateur/émulateur. Cela peut être fait dans les paramètres du simulateur/émulateur.

De plus, le simulateur/émulateur ne fonctionne pas toujours bien avec LocationAccuracy.low , vous pouvez essayer de passer à un niveau supérieur.

Je travaille sur un émulateur Android. Je n'ai pas besoin d'obtenir un emplacement de haute précision, j'ai donc seulement demandé l'autorisation d'accéder à l'emplacement grossier. Après avoir vu le commentaire de @mvanbeusekom , je voulais essayer LocationAccuracy,high après avoir ajouté l'autorisation nécessaire qui est <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> au manifeste.

Cependant, après avoir ajouté cette autorisation, les demandes de précision faible et élevée ont fonctionné pour moi. Intéressant.

Je clos ce sujet pour l'instant. C'est un problème connu que l'émulateur Android ne fonctionne pas bien avec les autorisations COARSE. Cela est dû au fait que la localisation COARSE essaie de trianguler la position en fonction du réseau cellulaire, qui sur l'émulateur n'est pas disponible.

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