Как получить ТЕКУЩУЮ ориентацию (ActivityInfo.SCREEN _ОРИЕНТАЦИЯ _*)устройства Android?

Я хотел бы узнать подробную ориентацию устройства, предпочтительно одну из SCREEN_ORIENTATION_LANDSCAPE, SCREEN_ORIENTATION_PORTRAIT, SCREEN_ORIENTATION_REVERSE_LANDSCAPE, SCREEN_ORIENTATION_REVERSE_PORTRAITиз ActivityInfoили аналогичную.

Некоторые из ответов здесь, на StackOverflow, включают

getWindowManager().getDefaultDisplay().getRotation()

но на самом деле это не говорит мне, находится ли устройство в портретном или альбомном режиме, а только то, как оно повернуто относительно своего естественного положения -, которое, в свою очередь, может быть в первую очередь альбомным или портретным.

getResources().getConfiguration().orientation

возвращает одно из следующих трех:ORIENTATION_LANDSCAPE, ORIENTATION_PORTRAIT, ORIENTATION_SQUARE,что тогда на самом деле не говорит мне, как телефон повернут (, будь то вверх дном или на какую из сторон он повернут ).

Я знаю, что мог бы использовать последний в сочетании с DisplayMetrics, чтобы узнать естественную ориентацию устройства, но действительно ли нет лучшего способа?

56
задан Zoltán 15 October 2015 в 13:21
поделиться