Domanda

Sto cercando di recuperare la posizione corrente del dispositivo utilizzando il GPS del dispositivo. Quando mi registra per gli aggiornamenti (come mostrato di seguito) per LocationManager.GPS_PROVIDER Nessun aggiornamento è girato, ma quando faccio lo stesso per LocationManager.NETWORK_PROVIDER Ricevo gli aggiornamenti.

L'ho testato sul mio dispositivo Android (non sull'emulatore). Mi sono anche assicurato che il GPS fosse acceso. Altre app (non le mie) sono in grado di accedere alla mia posizione. Cosa mi manca qui?

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);
È stato utile?

Soluzione

L'avvio GPS non è un processo istantaneo. Il ricevitore deve sostanzialmente conoscere la posizione di ciascuno dei satelliti GPS nella costellazione per calcolare la sua posizione

Stai controllando per la prima volta se c'è un'ultima posizione nota che puoi usare? La maggior parte delle app prima lo controlla e quindi cerca una posizione.

Altri suggerimenti

Dovresti controllare quando il tuo telefono consente la raccolta della posizione con GPS.

Probabilly ciò che sta accadendo è che nelle impostazioni -> Posizione hai solo la casella di controllo per la posizione wireless. In tal caso, GPS_Provider non funziona.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top