В состав загружаемых примеров для этой включено простое приложение CompassSensor, с которым можно поэкспериментировать. Помещая металлические предметы поблизости к устройству во время выполнения приложения, вы можете заметить, что значения, поступающие от датчика магнитного поля, изменяются. Разумеется, если поднести близко к устройству магнит, вы у существенные изменения в значениях, но держать устройства Android рядом с магнитами не рекомендуется.
А можно ли применять датчик типа компаса как собственно компас для определения сторон света? Да, но только не сам по себе. Хотя датчик типа компаса способен обнаруживать магнитные поля вокруг устройства, но если устройство не удерживается идеально ровно относительно земной поверхности, то возможность корректной интерпретации значений этого датчика отсутствует. Однако в нашем распоряжении имеются акселерометры, которые могут сообщить ориентацию устройства относительно земной поверхности. Таким образом, построить полноценный компас можно на основе датчика типа компаса и акселерометро. Давайте посмотрим, как сделать это.
Совместное использование http://piv01.ru/planyi-evakuaczii акселерометров и датчиков магнитного поля
Класс SensorManager предоставляет ряд методов, которые позволяют комбинировать датчик типа компаса и акселерометры для выяснения ориентации устройства. Как только что утверждалось, использовать для выполнения этой работы один только датчик типа компаса не получится. Таким образом, класс SensorManager предлагает метод getRotationMatrix, который получает значения от акселерометров и компаса и возвращает матрицу вращения для определения ориентации.
Другой метод SensorManager — getOrientation — берет матрицу вращения из предыдущего шага и строит матрицу ориентации. Значения в матрице ориентации сообщают поворот устройства относительно магнитного севера Земли, а также угол наклона и поворота относительно земной поверхности. Было бы замечательно, если бы эта работа была сделана.
К сожалению, по крайней мере, до версии Android., использование этого механизма сопряжено с большими проблемами, не последней из которых является появление точки разрыва, когда устройство находится перед нами, и для того, чтобы посмотреть на экран, мы слегка наклоняем его. Эта точка разрыва говорит о том, что как только мы проходим нулевой маркер (где кажется, что точка еще находится впереди нас), ориентация указывает на точку позади нас. Это вызывает путаницу. К счастью, в версии Android. были предоставлены дополнительные методы, проясняющие ситуацию (см. раздел “Датчики вектора поворота” далее в ). Тем не менее, при работе с устройствами, на которых установлены версии Android, предшествующие., вы должны заботиться о том, какие значения датчиков использовать.
Опубликовал katy
February 18 2015 15:22:43 ·
0 Комментариев ·
2911 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.