2016-01-27 18 views
6

Ich muss eine App machen, die Herzfrequenzdaten in nahezu Echtzeit aufzeichnet und diese Daten so bald wie möglich an einen Server senden.iOS bekommen Herzfrequenz von Apple Watch in nahezu Echtzeit

Zuerst nahm ich diesen Ansatz: Watch os 2.0 beta: access heart beat rate

In der Tat ist es in Ordnung arbeitet. Es gibt neue Herzfrequenzdaten im HealthKit alle fünf Sekunden. Aber jetzt habe ich das Problem, dass ich das nicht mit einem Server synchronisieren kann.

Mein erster Ansatz war die Watch App. Die Uhr hat Daten an einen Server gesendet. Das funktioniert nicht, denn sobald der Bildschirm auf der Uhr schwarz wird, hört er auf zu senden.

Mein nächster Ansatz war, das HealthKit auf dem iPhone alle fünf Sekunden nach neuen Daten abzufragen. Dies funktioniert, solange die App im Vordergrund ist.

Dann habe ich gesehen, dass es eine Art Hintergrundfunktion gibt, die das HealthKit selbst überwacht und die App aus dem Hintergrund entfernt und Sie können etwas tun. (EnableBackgroundDeliveryForType) Dies scheint nicht für die Herzfrequenz zu funktionieren (die Apple Dokumentation sagt für Dinge wie Schritte das funktioniert nicht, ich denke Herzfrequenz ist einer von denen).

Ich stecke jetzt fest. Weißt du wie? Ich würde eine Hintergrundaufgabe benötigen, die alle 5-10 Sekunden auf dem iPhone ausgeführt wird. Das scheint von @BootMaker

+0

Wäre das nicht die Batterie ganz schnell erschöpfen? Ich meine Daten oder so alle 5 Sekunden senden –

+0

wäre es nur eine schnelle GET-Anforderung an einen Server ein Datum und die Herzfrequenz und es für ein Tennismatch zu senden, so wird es nicht verwendet werden, so lange – user2529173

+0

@ user2529173, Sie Ich denke, es wird nicht lange dauern, aber ein Benutzer mit Dutzenden solcher Apps muss 2 Anfragen pro Sekunde an beliebige Server schicken, ohne garantierte niedrige Latenz oder optimale Routen, sie sind nicht einmal garantiert am Leben zu sein und die Anfragen können leicht sein bis zum Timeout gehängt. Versuchen Sie, die Hintergrundabrufe in Verbindung mit dem Gesundheitspaket zu verwenden. Das System entscheidet, wann die App auf das Internet zugreifen darf. Es ist nicht eindeutig dokumentiert, aber die Intervalle hängen davon ab, wie häufig die App verwendet wird und wie schnell sie ist. * Wirklich ** wird ausgeführt, zusätzlich zu einem allgemeinen Gerätezustand. –

Antwort

12

UPDATE

Wie bemerkt unmöglich zu sein, hat Apple Hintergrundmodus für HKWorkout Anwendungen in WatchOS 3, so funktioniert es jetzt. Sie haben ein HKWorkoutSession und dies halten Ihre Herzfrequenz Lieferung in Echtzeit selbst laufen, wenn die App im Hintergrund (dunkler Bildschirm auf der Uhr) ist

Die am nächsten Sie sein werden, ist während Die Watch App ist geöffnet.

Warum sage ich das?

  1. Es gibt zwei HealthKit der Datenbank (man am iPhone und ein anderer auf der Apple-Uhr). Wenn sie synchronisiert sind, ist dies willkürlich und wird nur durch die OS entschieden.

  2. Die nächstgelegene Sie Echtzeit sein werden, wenn Sie kein Passwort haben den Bildschirm in iPhone oder Apple Watch sperren. So oder so, es gibt keine Garantie, dass die Synchronisierung jedes Mal eine neue Maßnahme wird zu Apple-Watch HealthKit

  3. Den einzigen Weg, passiert den Herzfrequenzsensor in Arbeit in Echtzeit über Training zu zwingen oder Beobachter während Ihre Apple Watch App ist in FOREGROUND.

  4. Hintergrundlieferung ist NICHT verfügbar für Apple Watch apps.

  5. Uhr OS 2 Anfrage der Sensor automatisch (im Hintergrund) alle 10 Minuten Minimum zu messen.

Es gibt keine andere Abhilfe, wenn Sie für längere Zeiträume in Echtzeit benötigen, oder während der Benutzer die App nicht verwenden, Sie eine spezielle tragbare verwenden müssen.

+0

Vielen Dank für Ihre Antwort. Ich habe Angst vor dieser Antwort. Scheint das Projekt kann nicht mit Apple Watch gemacht werden. Anyways, danke – user2529173

+0

Ich kenne das Gefühl. Sie müssen sich drehen und vielleicht auf die nächste Veröffentlichung von ** Watch OS ** warten. Vielleicht entscheiden sie sich, ** HKObserver ** -Fähigkeit auf Watch's HealthKit hinzuzufügen –

+1

Hugos Antwort ist richtig und deckt auf den ernsten Begrenzungen der Apple-Uhr auf, und es gilt für alle anderen Sensoren auch wie Beschleunigungsmesser. Eigentlich ist es ziemlich nutzlos Gadget jetzt ohne Echtzeit-Sensoren ... Sie müssen auf neue watchOS-Releases oder neue Gerät warten oder einfach ein Wearable für einige Dollar verwenden. – BootMaker