2017-06-07 19 views
1

私は1日を通して加速度計データを分析するアプリケーションを作ろうとしています。アプリは必ずしも加速度計のデータに常にアクセスする必要はありません。すべてのデータを分析するだけです。それで、データをローカルに保存し、毎時分析する方法があります(アプリがドックにある場合は多分)。 1日の終わりにエクスポートして分析できますか?私は途中でSwiftでコーディングしています。ありがとう!アップルウォッチの加速度データをバックグラウンドで収集する

答えて

1

これは可能ですが、watchOS3アプリは主にフォアグラウンドとみなされるのでかなり複雑です。

  1. あなたwatchappは、加速度計データ、CMSensorRecorder().recordAccelerometer(forDuration: ...)を記録するためにCoreMotionセンサーを要求しますと、このデータは、任意の追加の影響を与えることなく、それ自身の上のセンサーによってrecorderedされるアプリを形成し、3日間のシステムに保存されています。
  2. アプリが実行時間(ユーザーがフォアグラウンドで開くか、バックグラウンド更新タスクを実行した場合)を開くと、データをCMSensorRecorder().accelerometerData(from: startDate, to: endDate)で取得して処理できます。

最も難しいのは、処理するのに十分な実行時間を得て、大量のデータを記録することです。分析メソッドの複雑さによっては、OSがバックグラウンド・リフレッシュ・タスクで十分な実行時間を与えず、OSウォッチドッグがプロセスを終了させるという問題に直面する可能性があります。一方、アプリがフォアグラウンドのときは、画面がオンのときのみアクティブになり、画面がオフになると一時停止状態になります。

アプリがDockにある場合、1時間に最大1回のバックグラウンド更新タスクを受け取ります。あなたのアプリがアクティブウォッチフェイスで複雑になる場合は、1時間に最大2回のバックグラウンド更新タスクを行うことができます。この数は、バッテリの状態、以前のタスクの使い方、現在他のアプリケーションで使用されているタスクの量によって異なります。

バックグラウンドの更新タスクを除いて、watchappはトレーニング中にのみバックグラウンドで動作します。この場合、期間は制限されませんが、15%を超えるCPUを使用することはできません。バックグラウンドタスクは、ワークアウトが正常に *要求加速度計データを開始まもなく一度OSに *リターン・タスクバックアプリがバックグラウンドでアクティブになりますので、トレーニングを開始し、開始したら、あなたは時間 *いったんバックグラウンド更新タスクをスケジュールすることができます* :

Bottomlineセンサー *プロセスから、それは、CPUの使用率 を気に*チェックするためにワークアウトあなたが好きな場所へと仕上げ

WWDC16セッションを送信:227235218

関連する問題