CMMotionManager *mgr = [[CMMotionManager alloc] init];
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);
}