📈

AirPodsProのセンサー情報を取得する

2020/09/29に公開

前回に引き続き
CMHeadphoneMotionManagerを調べる。今回はAPIを使ってAirPodsProのモーションデータを取得する。

CMHeadphoneMotionManager

モーションデータを取得する為にプライバシー設定に以下のキーを定義する。

Privacy - Motion Usage Description

モーションマネージャの初期化

let hmm = CMHeadphoneMotionManager()

availableのチェック

if !hmm.isDeviceMotionAvailable {
    print("current device does not support the headphone motion manager.")
    return
}

モーション取得の開始(ハンドラの設定)

hmm.startDeviceMotionUpdates(to: .main) { (motion, error) in
    if let motion = motion {
	print(motion)
    }
    if let error = error {
	print(error)
    }
}

実行

初回起動時にパーミッションのダイアログが表示される。

コンソールにデータが表示された(長いので省略)

QuaternionX -0.105983 QuaternionY -0.035076 QuaternionZ -0.000000 ...

各パラーメータが何を意味しているのかは追々調べる。

Discussion