Как переключить блокировку ориентации в Android?

Я хочу создать флажок в моей настройке «Активность», которая позволяет пользователю переключать ориентацию.

В подобных вопросах люди пишут только о полной блокировке ориентации (путем переопределения методаConfigurationChanged или добавления configChanges в AndroidManifest.xml) или обеспечения ориентации (посредством setRequestedOrientation).

Есть ли способ переключить блокировку ориентации?


EDIT: Я создал метод, который устанавливает предпочтительную ориентацию в одно из трех состояний: пейзаж, портрет и датчик. Этот метод используется в сочетании с поиском ориентации getResources().getConfiguration().orientation) И сохранения выбранной ориентации в предпочтениях. Затем в активности, которая должна блокировать ориентацию, я запускаю этот метод с предпочтительной ориентацией от предпочтений.

 private static void setActivityOrientation(Activity activity, int preferenceOrientation) { if (preferenceOrientation == Configuration.ORIENTATION_LANDSCAPE) { if( activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){ // You need to check if your desired orientation isn't already set because setting orientation restarts your Activity which takes long activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } } else if (preferenceOrientation == Configuration.ORIENTATION_PORTRAIT) { if( activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){ activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } } else { if( activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_SENSOR){ activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); } } } 

Solutions Collecting From Web of "Как переключить блокировку ориентации в Android?"