Что я хочу, это переназначить систему координат, когда телефон отвернулся от «естественной» ориентации. Чтобы при использовании телефона, и он был в ландшафте, он должен читать те же значения, что и в портрете.Изменение координат датчика
Я проверяю, является ли поворот равным Surface.ROTATION_90
, и если да, то переназначьте систему координат.
Я признаю, что не совсем понимаю, как это сделать должным образом, и может использовать небольшое руководство.
Итак, вам нужно запустить эти два метода:
SensorManager.getRotationMatrix(inR, I, grav, mag);
SensorManager.remapCoordinateSystem(inR, SensorManager.AXIS_Y,SensorManager.AXIS_MINUS_X, outR);
Что требуется, чтобы пройти в эти методы? Я создал новый массив с плавающей точкой, а затем передал только данные orientationsensor в магнитное поле, которое не сработало. Итак, я зарегистрировал как акселерометр, так и датчики магнитного поля. Извлеките данные из обоих из них в метод getRotatioMatrix
, и я всегда получаю NullPointerException
(хотя JavaDoc говорит, что некоторые аргументы могут быть нулевыми). Я даже пробовал передавать данные по каждому аргументу и все равно получил NullPointerException
.
Вопрос в том, какие данные мне нужно передать в метод getRotationMatrix?