Другой подход использует OrientationEventListener .
Его можно использовать следующим образом:
OrientationEventListener mOrientationEventListener = new OrientationEventListener(
this, SensorManager.SENSOR_DELAY_NORMAL) {
@Override
public void onOrientationChanged(int orientation) {
//checking if device was rotated
if (orientationPortrait != isPortrait(orientation)) {
orientationPortrait = !orientationPortrait;
Log.d(TAG, "Device was rotated!");
}
}
};
Проверить ориентацию:
private boolean isPortrait(int orientation) {
return (orientation >= (360 - 90) && orientation <= 360) || (orientation >= 0 && orientation <= 90);
}
И не забудьте включить и отключить прослушиватель:
if (mOrientationEventListener != null) {
mOrientationEventListener.enable();
}
if (mOrientationEventListener != null) {
mOrientationEventListener.disable();
}