Я пытаюсь изменить ориентацию экрана на основе нажатия кнопки, а также прослушивать изменение конфигурации с датчика.setRequestedOrientation (...) блокирует изменение конфигурации от датчика
Мой код выглядит следующим образом:
private boolean mFullScreen = false;
...
/**
* This method is used by button to toggle orientation
*/
public void toggleFullScreen() {
mFullScreen = !mFullScreen;
switchFullScreen();
}
private void switchFullScreen() {
if (mFullScreen) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
switch (newConfig.orientation) {
case Configuration.ORIENTATION_LANDSCAPE: {
getSupportActionBar().hide();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
break;
}
case Configuration.ORIENTATION_PORTRAIT: {
getSupportActionBar().show();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
break;
}
}
}
И в манифесте:
<activity
android:name="Activity"
android:configChanges="screenSize|orientation />
Сначала изменение конфигурации от датчика обнаруживается, но как только ориентация переключается с помощью кнопки, он не обнаружен ,
На самом деле я пытался получить игрока, как у YouTube, где оба датчика и кнопки может использоваться для изменения ориентации. – Samir