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)