Ich habe eine Android-App entwickelt, um Essen im Laufe des Tages zu verfolgen. Wir haben noch nicht entschieden, welche Sensoren wir verwenden sollen. Die App kann also alle Sensoren eines Dienstes verbinden und sie für eine unbestimmte Zeit streamen, je nachdem, wann das Telefon beschließt, die Ressourcen der App zu bereinigen. Was ich während des Zuverlässigkeitstests festgestellt habe, ist, dass Beschleunigungsmesser und Gyroskop nach zwei bis drei Minuten abgeschnitten haben, wenn sie beide mit mittlerer oder hoher Frequenz strömen. Ich habe einen Timeout-Thread implementiert, der nach den zuletzt empfangenen Beschleunigungs- oder Kreiseldaten sucht (abhängig davon, ob sie streamen sollen) und neue Listener neu registriert, wenn sie nicht mehr streamen. Hat jemand dieses Problem und/oder hat jemand Empfehlungen für eine weniger batterieintensive Art von zuverlässigem Accu/Gyro Streaming?Microsoft Band 2 Data stoppt Streaming für Beschleunigungsmesser und Gyroskop
Fassen wir zusammen:
- Registrierte Beschleunigungsmesser und Gyroskop Zuhörer nach 2-3 Minuten Empfangen von Daten stoppen
- Dies geschieht nur, wenn sie bei den mittleren und hohen Frequenzeinstellungen Beschleunigungs-/Gyro-Streaming und nur dann, wenn accel und Kreisel beide Streaming
- sind geschieht Dies unabhängig davon, ob andere Sensoren strömen oder nicht
- keine Ausnahme ausgelöst, wenn diese
- Subscript geschieht ion/Abmelde sowie eingehenden Daten werden alle
- Ich habe Thread eine hacky Timeout auf neue Themen behandelt, die hebt die Registrierung und accel/Gyro für neue Zuhörer registriert, wenn sie
Fragen Streaming-Stop:
- Ist noch jemand auf dieses Problem gestoßen?
- Gibt es ein Problem bei der Verwendung neuer Threads, um die Daten zu behandeln, die dazu führen würden, dass die Listener nicht registriert werden (unwahrscheinlich, weil andere Daten auf diese Weise implementiert werden)?
- Gibt es eine bessere (batteriesparendere) Möglichkeit, ein nicht aufgetretenes Ereignis zu erkennen und darauf zu reagieren, als eine Thread-Überprüfung auf ein Timeout zu haben?
Vielen Dank im Voraus!
Vielen Dank für die informative Antwort! Ich werde in die Cloud-API und das BandService-Problem schauen (Ich weiß, wo diese Ausnahme ausgelöst würde). Ich bin jedoch am ersten Punkt verwirrt. Ich hatte den Eindruck, dass man Winkelgeschwindigkeit oder Winkelbeschleunigung vom Gyroskop bekommen kann und ich kann es in der Dokumentation nicht finden. Kannst du mich auf deine Quelle hinweisen? Danke noch einmal. –