получить углы ориентации (Roll, Pitch, Yaw) мобильного телефона с помощью Sensor Manager? - PullRequest
0 голосов
/ 03 апреля 2012

Я пытаюсь получить углы ориентации (Roll, Pitch, Yaw) мобильного телефона с помощью Sensor Manager, и в соответствии с тем, что написано на сайте разработчиков Android, метод

getInclination (float [] I) Вычисляет угол наклона геомагнитного поля в радианах из матрицы наклона I>, возвращаемой getRotationMatrix (float [], float [], float [], float []). ` а также getRotationMatrix (float [] R, float [] I, float [] гравитация, float [] геомагнитная)

Вычисляет матрицу наклона I, а также матрицу вращения R, преобразуя вектор> из системы координат устройства в мировую систему координат, которая определяется как> прямая ортонормированная основа. `и возвращает логическое значение.

У меня вопрос, как получить ориентацию, используя упомянутые методы?

код

@Override
public void onSensorChanged(SensorEvent event) {
    // TODO Auto-generated method stub

    float []I = new float[9];
    float []R = new float[9];

    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        float x = event.values[0];
        float y = event.values[1];
        float z = event.values[2];

        tvX.setText(Float.toString(x));
        tvY.setText(Float.toString(y));
        //tvZ.setText(Float.toString(sm.getInclination(I)));    
    }
}

1 Ответ

0 голосов
/ 03 апреля 2012
Display disp = (Display)getSystemService(Context.WINDOW_SERVICE);
int orientation = disp.getOrientation();

Используйте две вышеупомянутые линии, чтобы получить ориентацию мобильного телефона

...