Erste Android-Position ausschließlich über WLAN funktioniert nicht

Dieses symptom behandelt wurde oft, aber ich habe nicht gefunden, eine andere Frage, die von den gleichen Kriterien, so hier geht...

Mache ich eine app, die erfolgreich die GPS verwendet, wenn das Gerät über service. Ich habe ein Testgerät mit der 2.3.4 version von Android. Es hat keinen SIM also GPS ist nicht zu erwarten. Aber es kann per Wifi in Google-Maps. Meine app aber nicht bekommen kann ein Ort auf diesem Gerät. Auf einem Gerät mit service, ich kann das gleiche Verhalten, indem Sie das Gerät in den Flugzeugmodus und dann neuaktivieren Wifi.

In meiner app habe ich ein gps-tracking-Klasse, die LocationListener implementiert.

Anwendung starten, wird der folgende code ausgeführt:

public Location getLocation() {
    try {
        locationManager = (LocationManager) mContext
                .getSystemService(LOCATION_SERVICE);

        //getting GPS status
        isGPSEnabled = locationManager
                .isProviderEnabled(LocationManager.GPS_PROVIDER);

        //getting network status
        isNetworkEnabled = locationManager
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

        if (!isGPSEnabled && !isNetworkEnabled) {
            //no network provider is enabled
        } else {
            this.canGetLocation = true;
            //First get location from Network Provider
            if (isNetworkEnabled) {
                Log.d(LOG_TAG, "Requesting updates");
                //TODO once tested, up the time below
                locationManager.requestLocationUpdates(
                        LocationManager.NETWORK_PROVIDER,
                        MIN_TIME_BW_UPDATES,
                        MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                Log.d("Network", "Network");
                if (locationManager != null) {
                    location = locationManager
                            .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                    //*** location is null here ***
                    if (location != null) {
                        latitude = location.getLatitude();
                        longitude = location.getLongitude();
                    }
                }
            }
            //if GPS Enabled get lat/long using GPS Services
            if (isGPSEnabled) {
                if (location == null) {
                    locationManager.requestLocationUpdates(
                            LocationManager.GPS_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    Log.d("GPS Enabled", "GPS Enabled");
                    if (locationManager != null) {
                        location = locationManager
                                .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                        if (location != null) {
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
                        }
                    }
                }
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

    return location;
}

Siehe Kommentar "Lage null hier". Dies ist der Fall bei der Inbetriebnahme und nachfolgende Aufrufe Minuten später.

Keiner dieser interface-Funktionen werden immer genannt:
onLocationChanged
onProviderEnabled
onProviderDisabled
onStatusChanged

Habe ich muffed etwas grundlegendes? Wie es scheint, Standort erreichbar sein sollten, zumindest nach ein bisschen warten. Und, wie bereits erwähnt, Google maps arbeitet in der wifi-only-Modus auf beiden Geräten.

  • was werden Sie sagen, dass GPS ohne SIM ist nicht zu erwarten? GPS sollte gut funktionieren (und wie angedeutet/bestätigt durch den diese Frage), allerdings ohne service A-GPS ist möglich, also die Verbindung mal langsam.
InformationsquelleAutor Mark Murphy | 2012-12-13
Schreibe einen Kommentar