Dazu gibt es im Web jede Menge Teil-Beispiele.
* Du benötigst einen lokalen Service in dem die Aufzeichnung stattfindet und der weiterläuft wenn der Benutzer das Gerät in den Ruhezustand versetzt bzw. die sichtbaren Activities Deiner App verlässt.
* Dazu benötigst Du einen Kommunikationskanal vom Service zu Deinen Activities um diese über aktuelle Daten informieren zu können. Ich mache das immer über BroadcastReceiver (zum Beispiel in meinem GaCoMo das auch von Joggern verwendet wird - Screenshots hier:
https://www.wuala.com/Android%20Apps%20Screenshots/GaCoMo/de/?key=z8nP8i9BDUZl).
* Die Location Updates liefern die Koordinaten und den Zeitpunkt der Aufzeichnung - aus zwei Koordinaten kannst Du mit einer statischen Funktion (distanceBetween) die Entfernung berechnen lassen und dann mit Hilfe der Zeiten alles ausrechnen.
* Wenn Du diese Daten aufzeichnen willst dann benötigst Du noch den SQLiteOpenHelper.
Das ist jetzt alles sehr oberflächlich da das alles nicht mundgerecht zu bekommen ist, da muss man schon etwas Hirnschmalz reinstecken. Das Thema geht auch jeder anders an. Ich wollte zum Beispiel nicht das diese Profi-Radfahrer auf Ihren 180km Radtouren Millionen Informationen in die Datenbank schaufeln und Ihr Handy zumüllen, auf der anderen Seite sollen die Daten aber noch sehr präzise bleiben. Also lasse ich mir alle 7m und 2sec einen Location Update geben ermittele daraus exakte Werte und speichere in der Datenbank aber ein Aggregat auf einem etwas höheren Niveau.
Im Übrigen halte ich das für ein sehr sportliches erstes Projekt.
Bei Fragen - auf diesem Kanal.
— geändert am 26.09.2011, 20:42:49
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.