Android Location API

Aus Wikizone
Version vom 7. Oktober 2013, 11:22 Uhr von 79.240.58.118 (Diskussion) (Die Seite wurde neu angelegt: „== Position bestimmen == Android kann die Position mit dem GPS Empfänger, über umgebende WLAN Netzwerke (die dann Online mit einer Google Datenbank abgeglichen …“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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.

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

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