Wie erhalte ich die AKTUELLE Ausrichtung (ActivityInfo.SCREEN_ORIENTATION_ *) eines Android-Geräts?

Ich möchte die genaue Ausrichtung eines Geräts herausfinden, vorzugsweise eines vonSCREEN_ORIENTATION_LANDSCAPE, SCREEN_ORIENTATION_PORTRAIT, SCREEN_ORIENTATION_REVERSE_LANDSCAPE, SCREEN_ORIENTATION_REVERSE_PORTRAIT vonActivityInfo oder gleichwertig.

Einige der Antworten hier auf StackOverflow enthalten

<code>getWindowManager().getDefaultDisplay().getRotation()
</code>

Dies sagt mir jedoch nicht wirklich, ob sich das Gerät im Hoch- oder Querformat befindet, sondern nur, wie es in Bezug auf seine natürliche Position gedreht wurde - was wiederum in erster Linie Querformat oder Hochformat sein kann.

<code>getResources().getConfiguration().orientation
</code>

gibt eine der folgenden drei zurück:ORIENTATION_LANDSCAPE, ORIENTATION_PORTRAIT, ORIENTATION_SQUARE, was mir dann nicht wirklich sagt, in welche Richtung das Telefon gedreht ist (ob es verkehrt herum ist oder auf welche Seite es gedreht ist).

Ich weiß, dass ich Letzteres in Kombination mit verwenden könnteDisplayMetrics um die natürliche ausrichtung des geräts herauszufinden, aber gibt es wirklich keinen besseren weg?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage