iphone - использование движения устройства вместо акселерометра, гироскопа и магнитометра - PullRequest
0 голосов
/ 16 октября 2011

Если я на iOS4, не использую определенный обработчик и нуждаюсь в том же интервале обновления, в чем разница, используя движение устройства вместо определенных обновлений акселерометра, гироскопа и магнитометра?

Что произойдет, если одна из этих 3 функций недоступна на устройстве, если я использую движение устройства?

Я имею в виду, что вернет deviceMotionAvailable, если одна из этих функций недоступна?

1 Ответ

3 голосов
/ 17 октября 2011

В iOS 4 магнитометр еще не включен в API перемещения устройства, но обрабатывается CLLocationManager (это изменилось в iOS 5).Поэтому, если у вас есть гироскоп и акселерометр, deviceMotioAvailable вернет true независимо от магнитометра.С другой стороны, если гироскоп отсутствует, вы всегда получите false, и вам нужно остаться с accelerometerData.

Поскольку Device Motion имеет одну временную метку для обоих датчиков, вы получите надежные интерполированные значения для обоихдатчики.В противном случае Device Motion не сможет выполнить объединение датчиков, главное преимущество в том, что это предпочтительный способ.

Нельзя полагаться на фиксированную частоту для CLLocationManager.didUpdateHeading вызывается всякий раз, когда система «думает», что это должно быть.Чтобы нормализовать различные временные координаты между CLLocationManager и CMDeviceMotion, вы можете взглянуть на NSTimeInterval для отметки времени unix

...