RK3566-Android11-主屏幕不跟随屏幕旋转问题
文章目录
前言
记录一次主屏幕不跟随系统方向旋转问题,解决方案。
自己在做过 设置里面系统中屏幕跟随系统方向旋转时候 App 都能够旋转了,但是回到主界面发现屏幕并没有跟随旋转,但是主界面是Launcher3 呀,然后分析下解决这个问题,发现以前已解遇到过类似位置,这里再总结一下。
一、参考资料
之前做过部分笔记,key参考,如下:

RK3568-Android15-强制横竖屏-默认App应用界面显示方向-屏幕显示方向跟随Sensor旋转
MTKAndroid12-13-实现WIFI-蓝牙默认打开-自动旋转屏幕管理默认关闭-屏幕超时默认30分钟-屏幕旋转方向
二、修改文件
java
/packages/apps/Launcher3/res/xml/launcher_preferences.xml
三、实现方案
路径:/packages/apps/Launcher3/res/xml/launcher_preferences.xml
java
<SwitchPreference
android:key="pref_allowRotation"
android:title="@string/allow_rotation_title"
android:summary="@string/allow_rotation_desc"
android:defaultValue="true"
android:persistent="true" />
属性:android:defaultValue="true" 值直接改为true
或者路径:res/values/config.xml 直接修改:<bool name="allow_rotation">true</bool>
四、知识点扩展
主屏最终能跟着转,必须三层都通:
| 层 | 要开的东西 |
|---|---|
| 系统 / 显示层 | HdmiSettings 里 0/90/180/270 真的把 WMS 旋转了 + 解除 hdmirotationlock |
| Launcher 层 | manifest 不锁方向 + allow_rotation=true + pref_allowRotation=true + grid options=true |
| 应用 / 方向锁 | 无第三方 app 调 setRequestedOrientation 覆盖;Launcher 数据库 DBTable 里的网格 profile 横 / 竖都有 |
总结
- 屏幕旋转也好、强制横竖屏也好 都是常见需求,要搞清楚这里面涉及到的几个知识点。
- 对于App 而言,如果你强制了、对于framework层而言如果你强制了, 那么系统再怎么改都没有用的,所以思路要广一点。