2

My app has an augmented reality camera view which uses CMMotionManager to find heading relative to true north. However, I am finding that if the user switches OFF Location Services / System Settings / Compass Calibration, then the device motion data stops returning sensible values (in particular the gravity vector values), and makes the app useless. Quite a few people do this because they believe doing so saves battery life.

Does anyone know exactly what this setting does to the device or to CMMotionManager?

How can my app determine what it is set to?

Does setting it OFF necessarily mean that CMMotionManager won't work?

gpdawson
  • 713
  • 6
  • 15
  • Have you addressed this issue? I often have problems with the accuracy of the yaw in the true north reference frame. – Kevin_TA Jun 25 '12 at 18:04

1 Answers1

1

You can check your true heading value in your heading delegate. If the device calibration is "off" in the setting then this value will be static and equal to "-1" every time. SO you can check in the heading delegate if (new.heading == -1) { //Calibration in setting is Off } else { //Calibration is On }

Hope this work. As it works for me.

Thanks and Regards Abhishek Goyal

Abhishek
  • 149
  • 5