当前位置: 首页 > news >正文

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

/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.lryc.cn/news/237932.html

相关文章:

  • 「Verilog学习笔记」根据状态转移图实现时序电路
  • 使用DHorse发布SpringBoot项目到K8S
  • Java修仙记之记录一次与前端女修士论道的经历
  • 初识linux(1)
  • 投资黄金:如何选择正确的黄金品种增加收益?
  • Rust错误处理机制:优雅地管理错误
  • docker-compose安装harbor
  • 【python学习】基础篇-常用模块-shutil文件和目录操作
  • 鸿蒙系统调研适配
  • SAP gui 登录条目不让修改
  • 华为ac+fit无线2层漫游配置案例
  • nginx的location中配置路径讲解
  • No appropriate protocol -- Mysql
  • Using Set Processing Effectively 有效地使用集合处理
  • HarmonyOS开发Java与ArkTS如何抉择
  • “茶叶创新:爆改营销策略,三个月狂销2300万“
  • 分享一个生成哈希值的C代码
  • 【Windows 常用工具系列 11 -- 福昕PDF搜索高亮过的文本】
  • (二)汇编语句组成
  • Linux C 网络编程概述
  • 腾讯云标准型s5和s6有什么区别?CPU处理器有差异吗?
  • WPF TextBox实现placeholder
  • UiPath Studio 2023.10 Crack
  • SpringBoot——入门及原理
  • js实现页面滚动时自动切换Sidebar标签,点击标签自动滚动页面
  • Failed to load resource: net::ERR_UPLOAD_FILE_CHANGED 谷歌浏览器就会有这个问题 其他的浏览器没有
  • 微信小程序 prettier 格式化
  • SystemVerilog学习 (10)——线程控制
  • 【开题报告】基于SpringBoot的二手汽车交易平台的设计与实现
  • Python 爬虫入门