2016-05-30 61 views
0

Я разрабатываю приложение, которое управляет RC Car в соответствии с фактическим положением мобильного телефона.Разница между Sensor.TYPE_ROTATION_VECTOR и getOrientation путем объединения TYPE_ACCELEROMETER и TYPE_MAGNETIC_FIELD

Поскольку TYPE_ORIENTATION устарел от Android (кто-то знает, почему именно он устарел?) Я использую RotationMatrix (Magnetic_Field и Accelerometer), чтобы получить ориентацию телефона, который отлично работает в данный момент.

Но во время моего исследования я сталкивался с Sensor.TYPE_ROTATION_VECTOR для получения образования. Имеет ли это некоторые преимущества или какой метод рекомендуется использовать?

Благодаря

ответ

0

TYPE_ROTATION_VECTOR предохранители нескольких датчиков вместе с помощью программного обеспечения на уровне операционной системы. Вот хороший учебник, объясняющий различия, а также образцы кода и выводы автора: https://www.journal.deviantdev.com/android-compass-azimuth-calculating/

Я заметил, что на моем Nexus 5X азимут (направление компаса) время от времени становится неточным. Однако, если я перехожу к чему-то другому, например к Google Maps, он также показывает неправильное направление компаса. Так что это похоже на проблему с устройством, его датчиками или обоими.

TYPE_ROTATION_VECTOR действительно обеспечивает хорошее сглаживание значений, а затем вы можете просто добавить фильтр нижних частот, если хотите дополнительное сглаживание. Удачи!