Android 13.0 强制app横屏显示

1.概述

在13.0产品定制化开发中,对于处理屏幕旋转方向,首先有kernel底层处理,从底层驱动gsensor 中获取数据,从而判断屏幕方向的,然后事件上报后 最后由WMS就是WindowManagerService 来处理旋转的相关事件

2.强制app横屏显示的核心类

/framework/base/services/java/com/android/server/wm/DisplayRotation.java

3.强制app横屏显示核心功能分析和处理

在系统中wms主要是处理屏幕相关的核心类,WMS中在处理屏幕自动旋转,主要是调用
DisplayRotation的freezeRotation方法锁定用户指定的屏幕方向,调用thawRotation方法,解锁用户固定屏幕,
恢复屏幕自动旋转。最后调用updateRotationUnchecked,发送新的Configuration变化,
以及如果布局发生变化,也会重新计算布局。

通过上述源码分析,在系统中关于处理屏幕方法的系统中就是DisplayRotation.java 里负责处理的,这里根据系统当前的旋转方向
具体需要看源码然后分析具体的旋转功能

   int rotationForOrientation(@ScreenOrientation int orientation,
              @Surface.Rotation int lastRotation) {
          ProtoLog.v(WM_DEBUG_ORIENTATION,
                  "rotationForOrientation(orient=%s (%d), last=%s (%d)); user=%s (%d) %s"

猜你喜欢

转载自blog.csdn.net/baidu_41666295/article/details/132383399