Como obtenho a orientação CURRENT (ActivityInfo.SCREEN_ORIENTATION_ *) de um dispositivo Android?

Eu gostaria de descobrir a orientação detalhada de um dispositivo, de preferência um dosSCREEN_ORIENTATION_LANDSCAPE, SCREEN_ORIENTATION_PORTRAIT, SCREEN_ORIENTATION_REVERSE_LANDSCAPE, SCREEN_ORIENTATION_REVERSE_PORTRAIT deActivityInfo ou equivalente.

Algumas das respostas aqui no StackOverflow incluídas

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

mas isso não me diz realmente se o dispositivo está no modo retrato ou paisagem, apenas como ele é girado com referência à sua posição natural - que por sua vez pode ser paisagem ou retrato em primeiro lugar.

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

retorna um dos três seguintes:ORIENTATION_LANDSCAPE, ORIENTATION_PORTRAIT, ORIENTATION_SQUARE, que na verdade não me diz de que lado o telefone está virado (seja de cabeça para baixo ou para qual dos lados está virado).

Eu sei que eu poderia usar o último em combinação comDisplayMetrics para descobrir a orientação natural do dispositivo, mas não há realmente nenhuma maneira melhor?

questionAnswers(8)

yourAnswerToTheQuestion