Я хотел бы узнать подробную ориентацию устройства, предпочтительно одну из 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
, чтобы узнать естественную ориентацию устройства, но действительно ли нет лучшего способа?