Android11 桌面默认横屏导致任务键近期任务布局UI显示错误!

news/2025/2/12 2:41:46/

/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

定义变量:private boolean stch = false;

keyCode == KeyEvent.KEYCODE_APP_SWITCH

取消原来逻辑,采用广播打开近期任务后台

/*/
            if (!keyguardOn) {
                if (down && repeatCount == 0) {
                    preloadRecentApps();
                } else if (!down) {
                    toggleRecentApps();
                }
            }
            //*/

新增代码如下:

//*/if (down) {stch = !stch;if (stch) {Intent intent = new Intent();intent.setClassName("com.android.launcher3","com.android.quickstep.RecentsActivity");intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );Log.d("TYD","---------RecentsActivity-------------"+intent);mContext.startActivity(intent);stch = true;} else {//mGotoBack();if("com.android.launcher3.uioverrides.QuickstepLauncher".equals(getCurrentActivityName()) ) {Intent intent2 = new Intent();intent2.setClassName("com.android.launcher3","com.android.quickstep.RecentsActivity");intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );Log.d("TYD","---------RecentsActivity222-------------"+intent2);mContext.startActivity(intent2);stch = true;Log.d("TYD","---------else stch:-------------"+stch);} else {mGotoEnter();mGotoEnter2();Log.d("TYD","---------mGotoEnter-------------"+stch);}}}//*/

引用模拟按键方法:

广播open两次+打开应用需确认两次。目前验证暂无其他bug。

//*/update recents app layout +QuickstepLauncher
    private void mGotoBack(){
          new Thread() {
            public void run() {
                try {
                    Instrumentation inst = new Instrumentation();
                    inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
         }.start();
    }
    private void mGotoEnter(){
          new Thread() {
            public void run() {
                try {
                    Instrumentation inst = new Instrumentation();
                    inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);//KEYCODE_DPAD_CENTER //KEYCODE_ENTER
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
         }.start();
    }
    private void mGotoEnter2(){
          new Thread() {
            public void run() {
                try {
                    Instrumentation inst = new Instrumentation();
                    inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);//KEYCODE_DPAD_CENTER //KEYCODE_ENTER
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
         }.start();
    }
    //*/

注意,需在home键和back返回键等虚拟按键做标志位:按下的时候走

stch = false;

否则 会出现不可描述的问题

 至于为什么会出现UI界面错误,旋转屏幕而已,我也想问十万个为什么?离离原上谱


http://www.ppmy.cn/news/1233219.html

相关文章

UE4基础篇十七:分析性能

一、性能瓶颈定位 原文地址:小能猫吃牙膏:UE4 性能 - (一)瓶颈定位 P.S. 对于某个具体问题,我个人偏向于遵循 WHY → WHAT → HOW 的思考方法(重要性逐级递减) 加以理解。因为如果找不到做某件事情的意义(WHY)所在,或是对这件事情本身的定义(WHAT)都模棱两可,那么即便经…

通用返回类型定义

定义业务异常类: import lombok.AllArgsConstructor; import lombok.Data;Data AllArgsConstructor public class BusinessException extends RuntimeException{private String errorCode;private String errorMsg; }错误枚举类: public enum UnifiedR…

灾备建设中,跨主机集群恢复技术应用

在介绍跨主机集群恢复之前,要了解到虚拟化主机集群是什么? 虚拟化主机集群是一种把一组主机组合起来形成一个整体,向用户提供资源方式(计算存储、存储资源、网络资源)的技术。 虚拟化集群具有以下特性: …

CBC算法实践Demo

效果图 全部代码 package encryption001;import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.util.Base64;public class EncryptionDemo {// 加密算法private static final String ALGORITHM "AES";// 加密模式和填充方式private s…

构建ansible学习环境

1.设置主机名 命名命令:hostnamectl set-hostname xx 设置4台主机 servera serverb serverc serverd 2.配置扩展源 1)cd /etc/yum.reops.d/ 2)vim local.repo [biaoshi] namemiaoshu baseurl/mnt/BaseOS enable1 gpgcheck0 [biaoshi2] namemi…

【计算机网络学习之路】Windows下的socket编程

文章目录 前言Windows下的socket编程1.预备工作2. socket编程 结束语 前言 本系列文章是计算机网络学习的笔记,欢迎大佬们阅读,纠错,分享相关知识。希望可以与你共同进步。 本篇文章仅记录Windows下socket编程和Linux的不同,并没…

使用docker搭建socks5代理

我参考MuleSoft Help Center成功搭建了socks5代理服务器 文字内容如下(怕以后访问不了) How to set up a testing SOCKS5 proxy (dante) for Anypoint monitoring in RTF (Runtime Fabric) A demonstration to set up a SockS5 proxy with Dante and se…

科技的成就(五十三)

503、任天堂首次公开 Switch 2016 年 10 月 20 日,任天堂首次公开 Switch 正式名称及造型。Switch 是任天堂推出的混合型游戏机,可作为家用游戏机,也可作为便携式掌机。Switch 在开发过程中就以代号 NX 而闻名,成为当年的现象级产…