CoreMotion - magnetField始终为0

giv*_*ivi 3 iphone objective-c ios core-motion

我正在尝试使用磁力计:

[myMotionMngr startDeviceMotionUpdatesToQueue: [NSOperationQueue currentQueue]
                                  withHandler:^(CMDeviceMotion *motion, NSError *error) 
{
    printf("%f\t%f\t%f\n", motion.magneticField.field.x, motion.magneticField.field.y, motion.magneticField.field.z);
    CMMagneticFieldCalibrationAccuracy acc = motion.magneticField.accuracy;
}];
Run Code Online (Sandbox Code Playgroud)

并且字段(x,y,z)始终为0. motion.magneticField.accuracy始终是CMMagneticFieldCalibrationAccuracyUncalibrated.根据文档,这意味着我的设备没有磁力计,但这不是真的,因为我正在使用iOS 5.0在iPad2上进行测试.

我错过了什么?

Bat*_*tti 7

尝试

startDeviceMotionUpdatesUsingReferenceFrame:toQueue:withHandler:

它应该工作