Вопрос по objective-c, iphone, ios, core-motion – CoreMotion - MagneticField всегда 0

3

Я пытаюсь использовать магнитометр:

[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.

Что мне не хватает?

@oops, прости за это. рад видеть, что вы решили проблему. :) Rok Jarc
На всякий случай попробуйTeslameter образец кода. Rok Jarc
@rokjarc Teslameter использует Core Location, а не Core Motion. givi

Ваш Ответ

1   ответ
6

startDeviceMotionUpdatesUsingReferenceFrame: toQueue: withHandler:

он должен работать

Проблема была так проста, я не могу в это поверить. Спасибо! givi

Похожие вопросы