Hallo Andreas,
Ich habe mal Schritte simuliert und er hat nicht immer mitgezählt (im Hauptscreen) wenn ich auf die Schrittzahl tippe zeigt er in der Grafik die richtige Schrittzahl an. Teilweise zählte er auch erst hoch, wenn ich gestoppt und wieder gestartet habe.
Prinzipiell ist es so, dass der Zähler nur aktualisiert wird wenn 5 gültige Schritte hintereinander erkannt wurden. Wenn du z.B. 9 Schritte läufst dann wird erst bei Schritt 6 die Anzeige auf 6 und danach pro Schritt aktualisiert. Wenn du z.B. 10 gültige Schritte machst, dann 1 Ungültigen, bleibt die Anzeige bei 10 bis Schritt 15 stehen und läuft erst wieder bei Schritt 16 weiter. Hier kann man überlegen die Anzeige klarer zu gestalten, wenn der Zähler im Vorlauf-Modus ist (d.h. Der Zähler erkennt Schritte, wartet aber bis die mind. Anzahl gültiger Schritte (5) erreicht ist)
Wenn ich ein zweites Mal auf "Stoppen" tippe, ändert sich nicht die Grafik, es bleibt beim Stop-Symbol, bis das Telefon sich ein paar Mal bewegt hat, dann springt es um.
Normalerweise wird die Grafik geändert, wenn der Service meldet, dass er gestartet bzw. gestoppt ist.
In deinem Fall ist das aber zurzeit ein Folgefehler von Nachfolgendem:
Besteht die Möglichkeit vom wakeup das Display auszuschließen? Wenn ich im Standby bin und loslaufe, geht es an. Das könnte doch ein wenig am Akku nagen ,-)
Um möglichst den Akku zu schonen, benutze ich eigentlich einen PARTIAL_WAKE_LOCK, das bedeutet, das Display ist aus, die CPU bleibt an. Beim Milestone und einigen anderen Telefonen ist der Bewegungssensor direkt an das Display gekoppelt, d.h. wenn das Display aus ist, geht auch der Sensor aus, trotz PARTIAL_WAKE_LOCK. Damit ist ein Pedometer auf diesen Modellen eigentlich nicht realisierbar. Als 'Hack' versuche ich den Ausfall des Sensors zu bemerken und wechsel in den SCREEN_DIM_WAKE_LOCK dieser verbraucht natürlich viel mehr Akku.
Ein Problem gibt es noch, ich kann zwar erkennen wenn der Sensor ausfällt, aber nicht ob der Nutzer nach einem SCREEN_DIM_WAKE_LOCK das Display entsperrt hat und somit den SCREEN_DIM_WAKE_LOCK Status des Telefons aufhebt. Android killt aber einen nicht mehr benötigten SCREEN_DIM_WAKE_LOCK nach einer gewissen Zeit automatisch und wirft eine Exception, welche nicht immer abgefangen werden kann.
Schon bei PARTIAL_WAKE_LOCK hält der Akku beim G1 nur 8 Stunden beim Dauerbetrieb von moveo ohne das Telefon groß für andere Dinge benutzt zu haben. Das Ganze ist dadurch bedingt, dass die CPU > 500 Mhz läuft obwohl für die Schritterkennung wenige Mhz ausreichend wären, das erklärt auch warum reine Pedometer mit einer Knopfzellenbatterie über ein halbes Jahr laufen.
Im SCREEN_DIM_WAKE_LOCK wird es noch viel weniger sein.
Somit wäre zum aktuellen technischen Stand der Dauerbetrieb eines Pedometers auf den Android Phones nicht machbar. Für kurze Einsätze um mal die Anzahl der Schritte bis zum Bäcker oder ins Büro zu messen kann man es verwenden.
Warum ich dann soviel Aufwand in moveo stecke liegt einfach daran, dass ich noch an einem zweiten Projekt arbeite wo die Schritterkennung ein Bestandteil für die Indoor-Navigation darstellt, überall da wo ich keine GPS-Daten habe.
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.