3

私は 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];

前もって感謝します!

4

0 に答える 0