Question

J'essaie de récupérer l'emplacement actuel de l'appareil à l'aide du GPS de l'appareil. Lorsque je m'inscrit pour les mises à jour (comme indiqué ci-dessous) pour LocationManager.GPS_PROVIDER Aucune mise à jour ne roule, mais quand je fais de même pour LocationManager.NETWORK_PROVIDER J'obtiens les mises à jour.

Je l'ai testé sur mon appareil Android (pas l'émulateur). Je me suis également assuré que le GPS est allumé. D'autres applications (pas les miennes) peuvent accéder à ma position. Qu'est-ce que j'oublie ici?

LocationListener locationListener = new LocationListener() {
    @Override
    public void onLocationChanged(Location location) {
            locationRetrieved(location, this);
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) { }

    public void onProviderDisabled(String provider) { providerDisabled(); }
};

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
Était-ce utile?

La solution

Le démarrage du GPS n'est pas un processus instantané. Le récepteur doit essentiellement connaître la position de chacun des satellites GPS dans la constellation afin de calculer son emplacement

Vérifiez-vous d'abord s'il existe un dernier emplacement connu que vous pouvez utiliser? La plupart des applications le vérifient d'abord, puis recherchent un emplacement.

Autres conseils

Vous devez vérifier que votre téléphone autorise la collecte de l'emplacement avec un GPS.

Probabais ce qui se passe, c'est que dans les paramètres -> l'emplacement, vous n'avez que la case à cocher pour l'emplacement sans fil. Si c'est le cas, le GPS_Provider ne fonctionne pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top