Wykrywanie orientacji urządzenia

Muszę wykryć zmianę orientacji urządzenia z systemem Android bez ręcznego grania danymi z czujnika, utrzymując orientację na orientację

onConfigurationChange nie zadziała, ponieważ moja aktywność nie będzie się obracać.

Zabawa z danymi z czujnika w celu wykrycia zmiany orientacji Uważam to za wynalazek koła, ponieważ android ma już wbudowaną implementację algorytmu do wykrywania zmiany orientacji urządzenia. Z drugiej strony wykrywanie zmiany orientacji nie jest prostym sprawdzeniem w ten sposób.

    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER || event.values.length < 3) {
            return;
        }
        //getResources().getConfiguration().orientation;
        if (event.values[1] < 6.5 && event.values[1] > -6.5) {
            if (orientation!=1) {
                Log.d("Sensor", "Protrait");
            }
            orientation=1;
        } else {
            if (orientation!=0) {
                Log.d("Sensor", "Landscape");
            }
            orientation=0;
        }
   }

To naprawdę wymaga rzeczywistego przetwarzania danych, takich jak filtracja z hałasu i nagłych krótkich wstrząsów / obrotów.

Czy są jakieś pomysły, w jaki sposób można wykryć orientację urządzenia za pomocą starszych usług? (Po raz kolejny będę trzymać swoją aktywność w pewnej orientacjionConfigurationChange nie będzie działać)

questionAnswers(3)

yourAnswerToTheQuestion