¿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?