私は iOS 6.0 と第 4 世代の iPhone および iPod touch で CMMotionManager をうまく使用しています。新しい iPhone 5 は、指定されている 2 倍の更新間隔で動作するようです。kTIME_INTERVAL が 0.0125 の場合、実際の間隔は約 0.021 です。
間隔を 0.0125 / 2.0 に設定すると、実際のタイマー間隔は 0.013 に近づき、これは私が望むものです。
iPhone 5 の CMMotionManager で同様の動作が見られる人はいますか?
CMMotionManager *motion;
motion.deviceMotionUpdateInterval = kTIME_INTERVAL; // iPhone 4 and 4th gen devices
if (isDevice5thGeneration) {
// iPhone 5 iOS 6 seems to run motion at twice the update interval (half as fast), so need to set interval at half to get desired interval
motion.deviceMotionUpdateInterval = motion.deviceMotionUpdateInterval / 2.0; // iPhone 5 KLUDGE
}
NSLog(@"Start motion recording deviceMotionUpdateInterval: %f", motion.deviceMotionUpdateInterval);
NSOperationQueue *queue = [[NSOperationQueue currentQueue] retain];
CMDeviceMotionHandler motionHandler = ^(CMDeviceMotion *deviceMotion, NSError *error) {
//NSLog(@"motion handler");
if (isRecordingMotion) {
[self processMotion:deviceMotion];
}
};
[motion startDeviceMotionUpdatesToQueue:queue withHandler:motionHandler];
前もって感謝します!