Я знаю, как получить вектор ориентации от акселерометра и датчика магнитного поля, но я не понимаю, зачем нужны данные с датчика магнитного поля. Может ли кто-нибудь объяснить, почему? Кстати, нужно ли мне запрашивать обновления с помощью SENSOR_DELAY_GAME? частота для обоих при создании игры или можно один (датчик магнитного поля, предположительно) обновлять реже без существенного влияния на отзывчивость?
Как акселерометр Android и магнитные датчики влияют на информацию об ориентации?
Ответы (1)
Данные акселерометра используются исключительно для определения того, какой путь вверх, а какой вниз, тогда как датчик магнитного поля необходим для оси, которая определяет север/юг/восток-запад. Они оба необходимы. Попробуйте использовать обычный компас, пока он не плоский, это не сработает. Акселерометр, по сути, сообщает коду ориентации, как переводить результаты x/y/z от датчиков магнитного поля.
Однако, если вы сказали своему пользователю, что для использования приложения ему придется положить телефон на спину (или на переднюю часть, или на бок, и т. д.), то вам не понадобится акселерометр.
Вам не нужно использовать SENSOR_DELAY_GAME, SENSOR_DELAY_NORMAL может быть даже достаточно, это, безусловно, будет потреблять меньше батареи. Однако, если вам нужны действительно точные результаты, используйте SENSOR_DELAY_FASTEST.