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