次のコードを使用して、coreMotion FrameWork を使用してアプリでシェイク イベントを取得しています。このコードは iPod 5 では問題なく動作しますが、他のデバイス、つまり iPhone 4、3gs、iPod 4 では動作しません。私は iOS 6 と 5 で試しました。
NSOperationQueue *op = [[NSOperationQueue alloc] init];
CMMotionManager *motionManager = [(AppDelegate *)[[UIApplication sharedApplication] delegate] sharedMotionManager];
motionManager.deviceMotionUpdateInterval = 1;
[motionManager startAccelerometerUpdatesToQueue:op withHandler:^(CMAccelerometerData *accelerometerData, NSError *error)
{
if(error)
{
NSLog(@"%@", [error localizedDescription]);
}
else
{
[self calculateWithThreshold:accelerometerData];
}
}];
何が問題なのかアドバイスをお願いします。