Я пытаюсь прочитать физическую ориентацию устройства android по сравнению с конкретным началом вращения, но я не могу получить от него правильное вращение, независимо от того, какой датчик я использую , Я инициализировать датчик, как это:Данные о физическом вращении устройства Android
mySensorManager.GetDefaultSensor(SensorType.RotationVector);
Я пытался читать «ценности» о событии SensorChanged, как X, Y, Z на индекс 0, 1 и 2. Это было дать некоторые цифры, которые изменились, как я но я не могу понять, как я могу получить вращательное значение вокруг определенной оси.
Я развиваюсь на планшете в портретном режиме. Это должно по-прежнему работать, даже если планшеты обычно находятся в ландшафтном режиме. Вот почему я убежден, что именно поэтому показания, которые он сообщает, не являются простыми 0,0,0, но более вероятно, что-то вроде 90,0,0.
Это нелегкая проблема для объяснения (частично потому, что я не уверен, что даже понимаю ее полностью), и как таковой еще более сложная проблема. Поэтому в основном я задаю этот вопрос в надежде, что кто-то там столкнулся с похожим сценарием и, возможно, сможет мне помочь.
Или, возможно, просто гениальный математик 3D-вектор, который хочет потратить несколько минут на случайный вопрос.
Примечание:
Если значения, сообщаемые устройства действительно отчитывается различные значения, в зависимости от того, является ли это телефон или планшетный ПК, я действительно ценю решение, которое обрабатывает и выдает значение это одинаково для всех устройств. Конечно, любой ввод приветствуется.
Посмотрите на этот код https://bitbucket.org/jskripkauskas/mobilesensors немного устаревший, хотя он может несколько помочь вам. Взгляните на «MainActivity» для показаний датчиков и TimerTask внутри него для расчета угла (хотя здесь применяются плавные показания датчика вместо вектора вращения на 3D-модели. – JuliusScript