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?