swift

import UIKit

//1.加速器框架
import CoreMotion

class ViewController: UIViewController {

    //1.创建运动管理者 必须设置为 全局的
    let manager = CMMotionManager()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //2.判断加速计是否可用
        if !manager.isAccelerometerAvailable{
            print("加速计不可用")
            return
        }
        
        //设置采集间隔
//        manager.accelerometerUpdateInterval = 1
        manager.accelerometerUpdateInterval = 1.0/2
        
        //3.开始采集
        manager.startAccelerometerUpdates()
        
//        //push:主动告诉外界数据
//        manager.startAccelerometerUpdates(to: OperationQueue.main) { (data:CMAccelerometerData?, err:Error?) in
//            if err == nil{
//                print(data)
//                print(data?.acceleration.x, data?.acceleration.y, data?.acceleration.z)
//            }
//        }
        
    }


    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        
        //这里必须 执行  manager.startAccelerometerUpdates() 才有数据
        print(manager.accelerometerData?.acceleration.x, manager.accelerometerData?.acceleration.y, manager.accelerometerData?.acceleration.z)
    }
}

  

原文地址:https://www.cnblogs.com/qingzZ/p/10286545.html