Positionsbestimmung funktioniert nicht

  • 4 Antworten
  • Letztes Antwortdatum
P

Piwo72

Neues Mitglied
0
Hallo zusammen,

ich schreibe an einer App welche lediglich die GPS-Koordinaten rausfinden und anzeigen soll. Da ich Anfänger in der Android-App-Programmierung bin, habe ich viel gegoogelt und bin auf dieser Seite gelandet:
Googles Android/ Positionsbestimmung

Habe mich daran gehalten, jedoch stürzt meine App jedesmal sofort ab nachdem ich sie nur starte.

Hier ist der betroffene Code-Ausschnitt:
PHP:
LocationManager locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);
	
	LocationListener locationListener = new LocationListener() {

        public void onLocationChanged(Location location) {          
	        TextView tv = (TextView) findViewById(R.id.Latitude);
	        String lat = Double.toString(location.getLatitude());
	        tv.setText(lat);
        }

        ...

Und hier der Startaufruf:
PHP:
@Override
	protected void onCreate(Bundle savedInstanceState) {
		locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

        ...

In der Manifest.xml habe ich die Pemissions INTERNET und ACCES_COARSE_LOCATION eingefügt.
Der Compiler zeigt nirgends Fehler auf.

Hat jemand eine Idee wieso meine App immer abstürzt?

Danke im vorraus :)
 
Zuletzt bearbeitet:
Poste mal dein Logtrace.
 
Bei mir sieht es so aus (vielleicht liegt es an den Parametern ... 1,1, ...
Code:
        criteria = new Criteria();
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        provider = locationManager.getBestProvider(criteria, true);  
        locationManager.requestLocationUpdates(provider, 1, 1, locListener);
und in Manifest steht auch noch
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

Mit Gruß
E.S.
 
Zunächst einmal danke für die vielen Infos.
Ich habe nun eine App, das Problem ist jedoch, dass die Methode onLocationChanged() des LocationListeners nie aufgerufen wird.

Dazu habe ich folgenden Code im onCreate:
PHP:
//LocationManager starten:
		lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
		
		//Verfügbarkeit testen:
		if (!lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
			showDialog("Fehler", "Location-Service ist nicht verfügbar");
		else {
			//Wenn verfügbar:
			lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
			lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, ll);
}

Das Objekt "ll" ist ein ebenso im onCreate instaziierter LocationListener:
PHP:
ll = new LocationListener() {
			public void onLocationChanged(Location loc) {
				showDialog("!","onLocationChanged wurde aufgerufen!");
				
				double lon = loc.getLongitude();
				double lat = loc.getLatitude();
				
				TextView tvlon = (TextView) findViewById(R.id.lon);
				TextView tvlat = (TextView) findViewById(R.id.lat);
				
				tvlon.setText(Double.toString(lon));
				tvlat.setText(Double.toString(lat));
			}
			public void onStatusChanged(String provider, int status, Bundle extras) {
				// TODO Auto-generated method stub
			}
			public void onProviderEnabled(String provider) {
				// TODO Auto-generated method stub
			}
			public void onProviderDisabled(String provider) {
				// TODO Auto-generated method stub
			}	
		};

Randinfos:
- Getestet wird auf einem HTC Desire X
- WLAN verbindung besteht
- GPS ist aktiviert (auch das icon erscheint beim start der App)
- Permissions sind drin (COARSE, FINE & INTERNET)

Jedoch selbst nach mehreren Minuten geschah gar nichts, denn onLocationChanged wird nie aufgerufen, was eigenartig ist, da wenigstens durch den NETWORK_PROVIDER das relativ schnell gehen sollte...

Weiß jemand wieso das da kein Ergebnis kommt?
 
WLAN, wozu ??
Hast Du, wo du mit dem Gerät bist, auch GPS-Empfang?
Hast Du mal die Parameter ...,0,0,.. z.B. durch ...1,1, ersetzt?

Für meinen LocationListener habe ich eine eigene Klasse

public class MyLocationListener implements LocationListener
{ ...
}

Ob man das so machen muss, weiss ich aber nicht.
 

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
487
AnnaBauer21
AnnaBauer21
AnnaBauer21
Antworten
6
Aufrufe
987
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten