Android Location API: Unterschied zwischen den Versionen
| Zeile 19: | Zeile 19: | ||
====LocationListener==== | ====LocationListener==== | ||
Über den Location Manager kann man einen LocationListener registrieren um regelmäßige Positionsupdates zu bekommen. | Über den Location Manager kann man einen LocationListener registrieren um regelmäßige Positionsupdates zu bekommen. | ||
| + | |||
| + | Hinweis in Stackoverflow wird über Probleme mit dem onStatusChanged Listener auf diversen Versionen von Android s.u. | ||
| + | |||
==== Geocoder ==== | ==== Geocoder ==== | ||
Über die Geocoder Klasse kann man Positionsdaten zu Adressdaten und umgekehrt ermitteln (Google Service) | Über die Geocoder Klasse kann man Positionsdaten zu Adressdaten und umgekehrt ermitteln (Google Service) | ||
Version vom 7. Oktober 2013, 15:11 Uhr
Links und Quellen
http://www.vogella.com/articles/AndroidLocationAPI/article.html
Position bestimmen
Android kann die Position mit dem GPS Empfänger, über umgebende WLAN Netzwerke (die dann Online mit einer Google Datenbank abgeglichen werden) oder über die aktuelle Handyzelle bestimmen.
Für die Positionsbestimmung stellt Android das Package:
android.location
zur Verfügung.
Wichtige Komponenten
Location Manager
Class LocationManager für Zugriff auf Android location service
LocationProvider
Superclass für die LocationProvider die die Position liefern. Es gibt 3:
network //Mobile oder WiFi gps passive // für externe Geräte
LocationListener
Über den Location Manager kann man einen LocationListener registrieren um regelmäßige Positionsupdates zu bekommen.
Hinweis in Stackoverflow wird über Probleme mit dem onStatusChanged Listener auf diversen Versionen von Android s.u.
Geocoder
Über die Geocoder Klasse kann man Positionsdaten zu Adressdaten und umgekehrt ermitteln (Google Service)
Notwendige Rechte / Permissions
ACCESS_FINE_LOCATION permission für GPS, ansonsten ACCESS_COARSE_LOCATION permission
Beispiel 1 - locationapi.simple
Android Location API - Simple Location
Location Snippets
User zum aktivieren von GPS auffordern
Hinweis: Es ist nicht möglich GPS nur über den Code zu starten.
LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE);
boolean enabled = service
.isProviderEnabled(LocationManager.GPS_PROVIDER);
// Check if enabled and if not send user to the GSP settings
// Better solution would be to display a dialog (AlarmDialog) and suggesting to
// go to the settings
if (!enabled) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
}
Simulation auf dem Simulator
Auf dem Emulierten Device GoogleMaps aktivieren falls das aktivieren des GPS Simulators nicht klappt (Bugs). Man kann die DDMS Perspective von Eclipse nehmen um Geopositionen zu senden.
Window > Open Perspective > Other > DDMS
Über das Terinal und Telnet kann man auch Positionen schicken
telnet localhost 5554 geo fix 13.12 49.23