在 systemUI 快速设置面板中,打开 “自动旋转” ,横屏强制进入分屏
点击进入“去桌面打开应用” 进入launcher,由于 launcher 不支持分屏,会导致launcher 显示大概率显示不全
本来实在是没有好的解决方案了
最后看了一下设置屏幕锁定方式的代码(因为一致觉得和屏幕方向有关系, 竖屏分屏是好着的)
试验出来如下
RecentsAcitivty.java{
//从recent 跳转到 launcher 的代码
class LaunchHomeRunnable extends Runnable{
public void run() {
----------- 这段代码是 RotationPolicy.java中 setRotationLock() 方法,给了一定的启发 -------
try {
IWindowManager exc = WindowManagerGlobal.getWindowManagerService();
if(enabled) {
//保持当前旋转方向
exc.freezeRotation(rotation);
} else {
//自由转换方向
exc.thawRotation();
}
} catch (RemoteException var2) {
Log.w("RotationPolicy", "Unable to save auto-rotate setting");
}
-----------------------------------------------------------------------------
//0. 是否处于屏幕锁定
RotationLockControll controll = Dependency.get(RotationLockControll.class);
boolean islock = controll.isRotationLocked();
// framework/base/core/java/android/content/res/Configuration.java
//1. exc.freezeRotation(Configuration.ORIENTATION_UNDEFINED); Configuration.PORTRAIT Configuration.LANDSCAPE
源码启动launcher
//2. exc.thawRotation();
//3. 设置屏幕是否锁定
controll.setRotationLocked(boolean);
}
}
}