LoginSignup
6
7

More than 5 years have passed since last update.

SwiftとiOSアプリで歩いた歩数を取得する

Posted at

SwiftとiOSアプリとXcodeで歩いた歩数を取得する

個人的に作りたいアプリで、iOSのヘルスケアの歩数を取得するモジュールを作る必要があったので、作りました。

import UIKit
import CoreMotion
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    let pedometer:CMPedometer = CMPedometer()//プロパティでCMPedometerをインスタンス化。
//ここは、クラスのプロパティで宣言すること。getWalkのローカル変数で記述してしまって、コールバックが呼ばれるときにインスタンスが消えててエラーが発生してしばらく詰まりました。
    @IBAction func getWalk(_ sender: Any) {
        if(!CMPedometer.isStepCountingAvailable()) { //歩数が取得できるかどうかチェックしてます
            print("cannot get stepcount")
        }
        let from = Date(timeIntervalSinceNow: -10000)//-10000は適当な数字です。適宜最適な数字に書き換えてください。
        let to = Date()//現在を取得してます。

        pedometer.queryPedometerData(from: from, to: to, withHandler: {(pedometerData, error) in
            print("歩数は\(pedometerData!.numberOfSteps)")
            print("距離は\(String(describing: pedometerData?.distance))") // 距離
            print("登った回数\(String(describing: pedometerData?.floorsAscended))") // 上った回数
            print("降った回数\(String(describing: pedometerData?.floorsDescended))")
            })
    }
}

getWalkっていうメソッドのネーミングがあんまりよろしくないんですが、ここはリファクタリングの必要ありです。
info.plistも書き換える必要があって、これらは他のドキュメントに載ってると思います。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7