GPS getSpeed() im Hintergrund

  • Hi,


    ein paar Android-Apps habe ich mittlerweile schon geschrieben aber bei manchen Sachen verstehe ich die Vorgehensweise bei Android nicht und denke noch viel zu viel in Objective C.


    Ich habe eine App mit der kann man eine Fahrradlampe steuern. Das ist ein privat Projekt deswegen sei jetzt der Sinn erstmal dahingestellt. Das man die Lampen bzw. die einzelnen LED's ansteuert und heller und dunkler macht geht auch schon. Nun soll man in den Einstellungen zwei Werte vor nehmen: Einmal für schnell eine Lampen Einstellung und einmal für Langsam. Sowie eine Geschwindigkeitsschwelle.


    An einem konkreten Beispiel heißt das: Die Geschwindigkeitsschwelle ist 20 km/h, wenn langsam alle LED's auf 70% Prozent und wenn schnell alle LED's auf 30%. Nun soll wenn man Fahrrad fährt die App im Hintergrund die Geschwindigkeit messen. Wenn man über die Schwelle kommt also über 20 km/h soll die Einstellung für schnell sein und unter 20 km/h für langsam. Damit das nicht andauernd hin und her schalten muss da man ja beim fahren nie so exakt fährt wäre dann das umschalten erst wieder wenn die 20 km/h dauerhaft um 5 km/h unterschritten werden.


    Das abspeichern ist ja kein Problem. Nur wie bekomme ich die Geschwindigkeit im Hintergrund und kann dann an die Lampe per Bluetooth die Daten senden? Die Daten sind nicht groß. Nur ein 8 Byte großes Array.


    Ich habe schon mal gegoogelt aber ich finde nur Varianten, wo man die Position im Hintergrund bekommt aber nirgends die Geschwindigkeit. Im Vordergrund soll das mit LocationManager und dann getSpeed() gehen.


    Hat damit jemand Erfahrung und weiß wo man sich belesen kann?


    Vielen Dank!


    Nils


    EDIT: Mit Hintergrund meine ich auch wenn das Handy gesperrt ist. Denn man hat dann ja meistens sein Handy in der Hosentasche oder Rucksack.

  • Spontan würde ich sagen (und StackOverflow scheint meine Meinung zu bestätigen), dass Du 'einfach' den ganzen LocationManager Krams in einen Background Service auslagerst.


    Dort hast Du dann auch Deine LocationManager Instanz und kannst diese nach der Geschwindigkeit befragen.


    Guckst Du http://stackoverflow.com/a/28535885



    Aber mal ganz ehrlich, das ist doch eigentlich kein Job für ein Mobiltelefon...
    Gibt's denn keine ordentlichen Fahrradcomputer, die das ein bisschen zuverlässiger messen können?


    Da lässt sich doch sicherlich was mit dem Arduino oder Raspberry Pi zusammenbasteln. ^^

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Vielen Dank für deine Antwort! Da entwickelst du also auch Android und iOS Apps. Im OS X Entwicklerforum bin ich nämlich auch aktiv. (AppleDeveloper)


    Das ganze probiere ich mal aus! Danke!


    Und ja eigentlich ist das ganze keine Arbeit für ein Handy. Wir nutzen auch schon einen Arduino um das ganze per Bluetooth auszutauschen. Ich habe auch schon mal geschaut aber die GPS-Empfänger scheinen nicht so klein zu sein und Akku werden die auch einiges brauchen. Die Schwierigkeit ist eben, dass das alles in der Lampe untergebracht werden soll und umso mehr die verbraucht desto schlechter ist es. Deswegen wollten wir es erstmal mit dem Handy versuchen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!