我試圖改變屏幕的方向基於按下按鈕以及聆聽傳感器的配置更改。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