iPhone Swift ライフログ

CMMotionActivityManagerを使ってiPhoneの行動ログをCSVファイルで取得する

投稿日:

iPhoneには加速度センサーやGPSといった様々なセンサーが搭載されており、アプリでそれらのデータを取り出すことも可能です。

ググると行動履歴というのがよく出てきますが、これはGPSの記録をトレースしたもののようです。

今回は上記とは異なり自分が何時にどういった行動をしていたのかを振り返るためにCMMotionActivityManagerという機能を使って、1週間分の行動ログを取り出してみたいと思います。

 

得られる行動ログの種類としてstationary,walking,running,cycling,automotive,unknownがあります。

startDateで取得時間を把握できます。

またconfidenceという測定の自信度も取得できます。

startDate stationary walking running cycling

atuto

motive

unknown confidence
2020-05-03 09:35:07 +0000 1 0 0 0 0 0 Excellent
2020-05-03 09:37:25 +0000 0 0 0 0 0 0 Excellent
2020-05-03 09:38:53 +0000 0 1 0 0 0 0 Good
2020-05-03 09:38:55 +0000 0 1 0 0 0 0 Excellent
2020-05-03 09:39:26 +0000 0 0 1 0 0 0 Excellent
2020-05-03 09:39:29 +0000 0 0 0 0 0 0 Excellent
2020-05-03 09:40:04 +0000 1 0 0 0 0 0 Excellent
2020-05-03 09:41:57 +0000 0 0 0 0 0 0 Excellent

 

やり方


(1) CMMotionActivityManagerをインスタンス化します。

queryActivityStartingの引数に開始時刻と終了時刻を指定して、キューに取得データを取り込みます。

最大7日間取れるようなので今回はd2を現在、d1を7日前としました。

コメントアウトしていますがmotionActivityをprintすれば上の表のような出力が得られることが確認できます。

(2)次にログを出力するための準備です。

 motionDataという独自クラスにmotionActivityデータを格納することにします。

motionActivityを配列にしたものがmotionDataListです。

(3)ログ出力

あとはCSVファイルとしてログ出しします。

 

ソースコード全体

ログがファイルとして取得できるので、あとは色々なツールから可視化することもできます。

 

以上。

 

 

 

-iPhone, Swift, ライフログ

Copyright© IT系でないエンジニアの転身 , 2020 All Rights Reserved Powered by STINGER.