CoreMotion - magneticField 总是为0

4

我正在尝试使用磁力计:

[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;
}];

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

我错过了什么?


2
如果有需要的话,可以尝试使用Teslameter示例代码。 - Rok Jarc
@rokjarc Teslameter使用Core Location而不是Core Motion。 - givi
@抱歉,很高兴看到你解决了问题。 :) - Rok Jarc
1个回答

7

尝试

startDeviceMotionUpdatesUsingReferenceFrame:toQueue:withHandler:

它应该能够工作


问题非常简单,我简直不敢相信。谢谢! - givi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接