Как акселерометр Android и магнитные датчики влияют на информацию об ориентации?

Я знаю, как получить вектор ориентации от акселерометра и датчика магнитного поля, но я не понимаю, зачем нужны данные с датчика магнитного поля. Может ли кто-нибудь объяснить, почему? Кстати, нужно ли мне запрашивать обновления с помощью SENSOR_DELAY_GAME? частота для обоих при создании игры или можно один (датчик магнитного поля, предположительно) обновлять реже без существенного влияния на отзывчивость?


person Ellen Spertus    schedule 23.05.2011    source источник


Ответы (1)


Данные акселерометра используются исключительно для определения того, какой путь вверх, а какой вниз, тогда как датчик магнитного поля необходим для оси, которая определяет север/юг/восток-запад. Они оба необходимы. Попробуйте использовать обычный компас, пока он не плоский, это не сработает. Акселерометр, по сути, сообщает коду ориентации, как переводить результаты x/y/z от датчиков магнитного поля.

Однако, если вы сказали своему пользователю, что для использования приложения ему придется положить телефон на спину (или на переднюю часть, или на бок, и т. д.), то вам не понадобится акселерометр.

Вам не нужно использовать SENSOR_DELAY_GAME, SENSOR_DELAY_NORMAL может быть даже достаточно, это, безусловно, будет потреблять меньше батареи. Однако, если вам нужны действительно точные результаты, используйте SENSOR_DELAY_FASTEST.

person CL22    schedule 23.05.2011
comment
большое спасибо. Мне любопытно, почему вы не думаете, что мне нужно использовать SENSOR_DELAY_GAME для игры. (Меня беспокоит не только батарея, но и время в моем слушателе.) - person Ellen Spertus; 23.05.2011
comment
Имена задержек произвольны, я не знаю, почему гугл выбрал имена или их значения. Но что я могу сказать, так это то, что вы всегда хотите использовать наименее интенсивный метод батареи, который будет работать, ваши пользователи будут благодарны. Нет смысла разряжать аккумулятор, если вам не нужна дополнительная точность. Просто используйте самый медленный, который имеет достаточную производительность для ваших конкретных нужд. - person CL22; 23.05.2011
comment
Как насчет устройств, у которых есть только один из датчиков, таких как Kurio (у которого есть только акселерометр). Существуют ли какие-либо обходные пути, позволяющие им по-прежнему получать пригодные для использования углы наклона (для управления игрой и т. д.)? - person Lennart Rolland; 07.04.2013
comment
Если вам просто нужны углы наклона для игры, одного акселерометра должно быть достаточно. Вам нужен только датчик магнитного поля для реальной ориентации относительно горизонтальных осей (север-юг-восток-запад). - person CL22; 07.04.2013