加速计:CMMotionManager的pull , 直接开始采样

来源:互联网 发布:网络连接服务器 编辑:程序博客网 时间:2024/06/07 19:51

原文链接

Core Motion的使用步骤pull

创建运动管理者对象

CMMotionManager *mgr = [[CMMotionManager allocinit];

CM框架有三种加速器对象Accelerometer,Gyro,Magnetometer;以及全能的一个Device(只因为CMAttitudeReferenceFrame回调了十分全面的设备的位置信息)

判断加速计是否可用(最好判断)

if (mgr.isAccelerometerAvailable) { // 加速计可用}

开始采样

- (void)startAccelerometerUpdates;

在需要的时候采集加速度数据

CMAcceleration acc = mgr.accelerometerData.acceleration;

NSLog(@"%f,%f, %f",acc.x, acc.y, acc.z);




例子:

- (void)viewDidLoad

{

    [super viewDidLoad];

    /*

     accelerometerUpdateInterval 设置采样时间

     accelerometerAvailable 加速计是否可用

     accelerometerActive 是否正在采集

     accelerometerData 采集的数据

      startAccelerometerUpdates        开始采集(pull)

     startAccelerometerUpdatesToQueue 开始采集(push)

     stopAccelerometerUpdates 停止采集

     */

    // 1.创建运动管理者对象  这种应该是全局变量

    self.cm = [[CMMotionManager alloc] init];

    // 2.判断是否可用

    if (self.cm.accelerometerAvailable) {

       

        // pull , 直接开始采样

        [self.cm startAccelerometerUpdates];

        //在要需要的时候在取数据,如点击


    }

    else {

        NSLog(@"加速计不可用");

    }


    

}


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

        NSLog(@"x= %f, y= %f, z =%f", self.cm.accelerometerData.acceleration.x, self.cm.accelerometerData.acceleration.y, self.cm.accelerometerData.acceleration.z);

}


0 0
原创粉丝点击