Jak uzyskać orientację CURRENT (ActivityInfo.SCREEN_ORIENTATION_ *) na urządzeniu z Androidem?

Chciałbym dowiedzieć się o szczegółowej orientacji urządzenia, najlepiej jednej zSCREEN_ORIENTATION_LANDSCAPE, SCREEN_ORIENTATION_PORTRAIT, SCREEN_ORIENTATION_REVERSE_LANDSCAPE, SCREEN_ORIENTATION_REVERSE_PORTRAIT zActivityInfo lub odpowiednik.

Niektóre z odpowiedzi tutaj zawarte w StackOverflow

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

ale to naprawdę nie mówi mi, czy urządzenie jest w trybie pionowym czy poziomym, tylko jak jest obracane w odniesieniu do jego naturalnej pozycji - co z kolei może w pierwszym rzędzie być krajobrazem lub portretem.

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

zwraca jedną z następujących trzech:ORIENTATION_LANDSCAPE, ORIENTATION_PORTRAIT, ORIENTATION_SQUARE, co tak naprawdę nie mówi mi, w którą stronę telefon jest włączony (czy to do góry nogami, czy do której strony jest włączony).

Wiem, że mógłbym użyć tego drugiego w połączeniu zDisplayMetrics aby znaleźć naturalną orientację urządzenia, ale czy naprawdę nie ma lepszego sposobu?

questionAnswers(8)

yourAnswerToTheQuestion