Означает ли кто-нибудь, возможно ли зарегистрировать GAME_ROTATION_VECTOR для Android 4.x?Android GAME_ROTATION_VECTOR backport
благодарит
Означает ли кто-нибудь, возможно ли зарегистрировать GAME_ROTATION_VECTOR для Android 4.x?Android GAME_ROTATION_VECTOR backport
благодарит
Вы можете переописать один на основе акселерометров и гироскопов данных. Однако это непросто. Вы можете найти «фильтр ориентации калмана» и посмотреть, есть ли реализация для Android. Если вы найдете тот, который хорошо работает, сообщите нам об этом!
Там нет существующей платформы код, который вы могли бы легко портировать, как вычисление этих значений датчика делается на родном слое (here's Кодекса JNI и here's реализация Java для Sensor Manager, который получает обновления событий датчика от собственный код).
Таким образом, в зависимости от вашего случая использования, лучше всего может быть использовать TYPE_ROTATION_VECTOR датчик на Android 4.X, так как в соответствии с Android docs TYPE_GAME_ROTATION_VECTOR является:
константа, описывающая Некалиброванный вектор вращения тип датчика.
Идентичен для TYPE_ROTATION_VECTOR, за исключением того, что он не использует геомагнитное поле. Поэтому ось Y не указывает на север, а вместо этого на какую-то другую ссылку, эта ссылка позволяет дрейфовать тем же порядком величины, что и дрейф гироскопа вокруг оси Z.
В идеальном случае телефон, повернутый и возвращающийся в ту же реальную ориентацию, должен сообщать об одном и том же игровом векторе вращения (без использования геомагнитного поля Земли). Тем не менее, ориентация может со временем немного сойти.
Затем вы можете преобразовать ось Y вручную в соответствии с какой-либо другой ссылкой, которая будет работать до тех пор, пока не будет выполнен идеальный случай. Однако, если датчик начинает дрейфовать, тогда ваше преобразование начнет накапливать ошибки.