android系统中,当系统默认为横屏的时候,打开一些竖屏应用,系统会跟着变成竖屏显示。如果要强制应用跟随屏幕显示方向显示,需要做什么修改呢?
修改如下:
--- a/frameworks/base/services/core/java/com/android/server/wm/DisplayRotation.java
+++ b/frameworks/base/services/core/java/com/android/server/wm/DisplayRotation.java
@@ -298,21 +298,21 @@ public class DisplayRotation {
mLandscapeRotation = Surface.ROTATION_0;
mSeascapeRotation = Surface.ROTATION_180;
if (res.getBoolean(R.bool.config_reverseDefaultRotation)) {
- mPortraitRotation = Surface.ROTATION_90;
- mUpsideDownRotation = Surface.ROTATION_270;
+ mPortraitRotation = Surface.ROTATION_0;//Surface.ROTATION_90;
+ mUpsideDownRotation = Surface.ROTATION_0;//Surface.ROTATION_270;
} else {
- mPortraitRotation = Surface.ROTATION_270;
- mUpsideDownRotation = Surface.ROTATION_90;
+ mPortraitRotation = Surface.ROTATION_0;//Surface.ROTATION_270;
+ mUpsideDownRotation = Surface.ROTATION_0;//Surface.ROTATION_90;
}
} else {
mPortraitRotation = Surface.ROTATION_0;
mUpsideDownRotation = Surface.ROTATION_180;
if (res.getBoolean(R.bool.config_reverseDefaultRotation)) {
- mLandscapeRotation = Surface.ROTATION_270;
- mSeascapeRotation = Surface.ROTATION_90;
+ mLandscapeRotation = Surface.ROTATION_0;//Surface.ROTATION_270;
+ mSeascapeRotation = Surface.ROTATION_0;//Surface.ROTATION_90;
} else {
- mLandscapeRotation = Surface.ROTATION_90;
- mSeascapeRotation = Surface.ROTATION_270;
+ mLandscapeRotation = Surface.ROTATION_0;//Surface.ROTATION_90;
+ mSeascapeRotation = Surface.ROTATION_0;//Surface.ROTATION_270;
}
}
@@ -503,7 +503,10 @@ public class DisplayRotation {
if (recentsAnimationController != null) {
recentsAnimationController.cancelAnimationForDisplayChange();
}
-
+
+ return false;
+
ProtoLog.v(WM_DEBUG_ORIENTATION,
"Display id=%d rotation changed to %d from %d, lastOrientation=%d",
displayId, rotation, oldRotation, lastOrientation);