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

MTK-Android12 13 屏蔽掉Viewing full screen

去掉ROOM 开机第一次提示全屏弹框

文章目录

  • 需求
  • 参考资料
  • 修改文件
    • 实现方案
  • 解决思路
    • grep 源码查找信息
      • grep 查找 grep -rn "Viewing full screen" 找string 字段
      • grep 查找 grep -rn immersive_cling_title 布局
      • grep 查找 grep -rn layout.immersive_mode_cling 对应的UI 组件
    • adb dumps + grep 源码查找信息
  • 总结


需求

将全屏提示弹框去掉, 在进入到app 需要全屏的界面,系统会弹框一次。 需要去掉,影响体验。

显示的全屏提醒如下:
在这里插入图片描述

参考资料

Android 10.0 去掉目前处于全屏模式的提示框

修改文件


frameworks/base/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java

实现方案

Android12 和 Android13 修改思想一样,方法具体内容不一样,如下:
handleShow 方法,屏蔽加入到windows 步骤:具体如下

Android12 private void handleShow(int rootDisplayAreaId) {if (DEBUG) Slog.d(TAG, "Showing immersive mode confirmation");mClingWindow = new ClingWindowView(mContext, mConfirm);// show the confirmationWindowManager.LayoutParams lp = getClingWindowLayoutParams();//  getWindowManager(rootDisplayAreaId).addView(mClingWindow, lp);}Android13private void handleShow(int rootDisplayAreaId) {if (DEBUG) Slog.d(TAG, "Showing immersive mode confirmation");mClingWindow = new ClingWindowView(mContext, mConfirm);// show the confirmationWindowManager.LayoutParams lp = getClingWindowLayoutParams();try {//   getWindowManager(rootDisplayAreaId).addView(mClingWindow, lp);} catch (WindowManager.InvalidDisplayException e) {Slog.w(TAG, "Fail to show the immersive confirmation window because of " + e);}}

解决思路

自己总结,一般修改界面性问题,无外乎两种方案:

  • grep 源码查找相关信息
  • adb 查看相关信息

grep 源码查找信息

grep 查找 grep -rn “Viewing full screen” 找string 字段

在这里插入图片描述

grep 查找 grep -rn immersive_cling_title 布局

在这里插入图片描述

grep 查找 grep -rn layout.immersive_mode_cling 对应的UI 组件

在这里插入图片描述

这里就通过关键信息,在源码里面找到关联的View 组件类 ImmersiveModeConfirmation

adb dumps + grep 源码查找信息

通过 dumpsys 查看当前focus 焦点的界面

1|k69v1_64_k419:/ $ dumpsys window | grep mCurrentFocusmCurrentFocus=Window{1d6e746 u0 ImmersiveModeConfirmation}

这里找到了 ImmersiveModeConfirmation,源码搜索下

R730:~/Android2/mt6769-alps-release-s0.mp1.rc/alps-release-s0.mp1.rc$ find . -name ImmersiveModeConfirmation.java 
./frameworks/base/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java

就找到了 这个 ImmersiveModeConfirmation.java 类的位置

总结

  • 一个简单的需求,知道修改方案,解决方法最重要

相关文章:

  • 【数据结构_9】栈和队列
  • spring:注解@PostConstruct、@PreDestroy
  • 同步 vs 异步 最直白的区别
  • Github webhook 是什么以及它的用途
  • 强化学习的数学原理(四)Value iteration Policy iteration
  • LLamaIndex中经常使用的四个模块
  • 2024年第九届团队程序设计天梯赛c++题解L1-L3-1(附PTA网址)
  • 6 CMD 与 PowerShell 指令大全、C 程序终端运行、字符编码切换指南
  • 【AI工具】用大模型生成脑图初试
  • C++学习记录:
  • 2025主流报表软件评测和推荐
  • 【DeepSeek答】如何成为一名科技领域陪同口译,阶段性学习目标是什么
  • FreeRTOS之消息队列
  • Spring Boot 应用程序中配置使用consul
  • 20250416在荣品的PRO-RK3566开发板的Android13下编译native C的应用程序的步骤
  • 免费使用RooCode + Boomerang AI + Gemini 2.5 Pro开发套件
  • 【技术派后端篇】深度剖析 Knife4j:从概述到整合及功能优势
  • RK3568 更换显示logo
  • 赋能顶尖AI平台:如何加速高质量AI音乐生成?
  • 架构风格(高软59)
  • 广告公司赚钱吗/seo推广 课程
  • 有没有做市场评估的网站/好推建站
  • 教育app定制开发/金阊seo网站优化软件
  • 织梦做的网站为什么显示404/精准数据营销方案
  • 做301网站打不开/百度网址导航主页
  • 重庆ssc做号网站/百度推广方案