Geräteausrichtung erkennen

Ich muss eine Änderung der Ausrichtung des Android-Geräts erkennen, ohne manuell mit Sensordaten zu spielen, während die Aktivitätsausrichtung bei einer bestimmten Ausrichtung bleibt

onConfigurationChange wird nicht funktionieren, da meine Aktivität nicht rotieren wird.

Das Herumspielen mit Sensordaten zum Erkennen der Orientierungsänderung Ich betrachte dies als eine Erfindung des Rades, da Android bereits eine eingebettete Implementierung des Algorithmus zum Erkennen der Orientierungsänderung des Geräts hat. Und von einer anderen Seite ist das Erkennen von Orientierungsänderungen keine einfache Überprüfung.

    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;
        }
   }

Es erfordert wirklich eine echte Datenverarbeitung wie das Filtern von Geräuschen und plötzlichen kurzen Erschütterungen / Rotationen.

Gibt es Ideen, wie die Geräteorientierung mithilfe von Legacy-Diensten ermittelt werden kann? (Noch einmal, ich werde meine Aktivität auf eine Orientierung beschränken, alsoonConfigurationChange wird nicht funktionieren)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage