Получите значения с гироскопа или акселерометра

Я пытаюсь создать приложение, в котором мне нужны только значения поворота устройства. Я хочу, чтобы поддержка приложений была как можно меньше, поэтому я предпочитаю сначала считывать значения из гироскопа, если устройство имеет свое оборудование (iPhone 4), или получать значения из акселерометра (iPhone 3G и 3GS).

Я хотел бы написать класс RotationManager, который бы обрабатывал взаимодействие с гироскопом или акселерометром, его внутренняя работа будет абстрактной для остальной части приложения. Как создать класс RotationManager? Что следует учитывать при создании хорошего многоразового экземпляра RotationManager?

Спасибо,

Радж


person Raj Pawan Gumdal    schedule 22.04.2011    source источник


Ответы (1)


Фреймворк Apple Core Motion уже делает эту работу за вас. Используя CMMotionManager, вы можете выбрать получение событий акселерометра и гироскопа по отдельности или регистрацию комбинированных событий движения устройства, которые автоматически используют все оборудование, доступное на устройстве пользователя.

person Ole Begemann    schedule 22.04.2011
comment
Хорошо, но как мне получить события вращения в iPhone 3G или iPhone 3GS, если у него нет гироскопа? - person Raj Pawan Gumdal; 23.04.2011
comment
В большинстве случаев невозможно определить вращение устройства только с помощью акселерометра. Вы даже пробовали, какие данные Core Motion генерирует для вас на устройстве без гироскопа? Я сомневаюсь, что мы с вами справимся лучше инженеров Apple. - person Ole Begemann; 24.04.2011
comment
Да, согласен, на данный момент я полагаюсь на CMAttitude, чтобы предоставить мне необходимую информацию. - person Raj Pawan Gumdal; 26.04.2011