¿Cómo obtengo la orientación ACTUAL (ActivityInfo.SCREEN_ORIENTATION_ *) de un dispositivo Android?

Me gustaría averiguar la orientación detallada de un dispositivo, preferiblemente uno deSCREEN_ORIENTATION_LANDSCAPE, SCREEN_ORIENTATION_PORTRAIT, SCREEN_ORIENTATION_REVERSE_LANDSCAPE, SCREEN_ORIENTATION_REVERSE_PORTRAIT desdeActivityInfo o equivalente.

Algunas de las respuestas aquí en StackOverflow incluyen

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

pero esto realmente no me dice si el dispositivo está en modo vertical u horizontal, solo cómo se gira con respecto a su posición natural, que a su vez puede ser horizontal o vertical en primer lugar.

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

devuelve uno de los tres siguientes:ORIENTATION_LANDSCAPE, ORIENTATION_PORTRAIT, ORIENTATION_SQUARE, que entonces realmente no me dice en qué dirección está el teléfono (ya sea al revés o a cuál de los lados está girado).

Sé que podría usar este último en combinación conDisplayMetrics para averiguar la orientación natural del dispositivo, pero ¿realmente no hay mejor manera?

Respuestas a la pregunta(8)

Su respuesta a la pregunta