//创建摇一摇对象
motionManager = [[CMMotionManager alloc]init];
if (!motionManager.accelerometerAvailable) {
// fail code // 检查传感器到底在设备上是否可用
KGLogVerbose(@" fail shake....");
}else{
//设置频率值,适合游戏和大部分app的检测
motionManager.accelerometerUpdateInterval = 0.1;
[self startDetachShake];
}
motionManager = [[CMMotionManager alloc]init];
if (!motionManager.accelerometerAvailable) {
// fail code // 检查传感器到底在设备上是否可用
KGLogVerbose(@" fail shake....");
}else{
//设置频率值,适合游戏和大部分app的检测
motionManager.accelerometerUpdateInterval = 0.1;
[self startDetachShake];
}
//检测摇一摇动作
-(void)startDetachShake{
[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *latestAcc, NSError *error)
{
float x = motionManager.accelerometerData.acceleration.x;
float y = motionManager.accelerometerData.acceleration.y;
float z = motionManager.accelerometerData.acceleration.z;
// 判断加速度>1.2时,这个值是可以修改的。
if (fabsf(x) >= 1.2||fabsf(y) >= 1.2||fabsf(z) >= 2.0) {
[motionManager stopAccelerometerUpdates];
}
}];
}