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

MTK Android12 关机界面全屏展示

需求:关机和重启按钮点击后,去掉正在关机的动画和tips,改为一张图片实现。

修改点

修改点如下:
涉及到的修改文件
修改:
\vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\globalactionsGlobalActionsDialogLite.java新增:
\vendor\mediatek\proprietary\packages\apps\SystemUI\res\layout\dialog_fullscreen_tip.xml
\vendor\mediatek\proprietary\packages\apps\SystemUI\res\layout-land\dialog_fullscreen_tip.xml
\vendor\mediatek\proprietary\packages\apps\SystemUI\res\drawable-xxhdpi\reboot_fullscreen_port_bg.png
\vendor\mediatek\proprietary\packages\apps\SystemUI\res\drawable-xxhdpi\reboot_fullscreen_land_bg.png备注:drawable 中的reboot_fullscreen_port_bg.png  reboot_fullscreen_land_bg.png  图片以客户提供的横竖屏图片为准

实现效果如下

mtk Android12 关机、重启 全屏图片显示

代码分析

找到关机相关内容 GlobalActionsLayout.java ->GlobalActionsDialogLite.java->关机的实际操作位置:ShutDownAction

@VisibleForTestingfinal class ShutDownAction extends SinglePressAction implements LongPressAction {ShutDownAction() {super(R.drawable.ic_lock_power_off,R.string.global_action_power_off);}@Overridepublic boolean onLongPress() {mUiEventLogger.log(GlobalActionsEvent.GA_SHUTDOWN_LONG_PRESS);if (!mUserManager.hasUserRestriction(UserManager.DISALLOW_SAFE_BOOT)) {//   mWindowManagerFuncs.reboot(true);return true;}return false;}@Overridepublic boolean showDuringKeyguard() {return true;}@Overridepublic boolean showBeforeProvisioning() {return true;}@Overridepublic void onPress() {mUiEventLogger.log(GlobalActionsEvent.GA_SHUTDOWN_PRESS);// shutdown by making sure radio and power are handled accordingly.mWindowManagerFuncs.shutdown();}}

往里层追代码,如下:

  • onLongPress()-》 mWindowManagerFuncs.reboot(true); 暂不分析,安全模式逻辑去了
  • onPress()->mWindowManagerFuncs.shutdown()->
    GlobalActionsComponent shutdown() ->Service shutdown 关机流程
    ->StatusBarManagerService.java -> reboot方法

retoot 相关源码如下:

 /*** Allows the status bar to reboot the device.*/@Overridepublic void reboot(boolean safeMode
http://www.lryc.cn/news/418620.html

相关文章:

  • 初识云计算
  • golang sync.Cond实现读写锁
  • 从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃
  • 设计模式-单例设计模式
  • 23_windows 使用sqlmap、kali使用sqlmap,SQL注入、sqlmap自动注入
  • WPF学习(12)-Image图像控件+GroupBox标题容器控件
  • 【Linux】基础IO认知
  • 7. Kubernetes核心资源之Service服务实战
  • 《向量数据库指南》——企业采用非结构化数据的场景及其深远影响
  • Linux内核编程(十二)热插拔
  • 七夕警示:探索社工库与网络搜索下的个人隐私泄露与保护策略
  • Redis-哨兵监控(sentinel)
  • RISC-V反汇编调试记录分享
  • python上下文管理器 with的使用
  • 24/8/8算法笔记 决策树构建鸢尾花
  • 数据库扩展新篇章:主流分库分表中间件全解析
  • python看图片猜价格游戏,frame 和PhotoImage的使用
  • 未来展望:等保测评在网络安全领域的持续创新与发展
  • 构建深度学习驱动的多目标检测系统:YOLO模型及应用
  • 算法刷题笔记 染色法判定二分图(染色法例题 C++实现)
  • 在Ubuntu上安装OpenBLAS和Eigen
  • Vue前端面试基础(一)
  • 使用Gitlab实现monorepo多项目CICD
  • 设计模式实战:银行账户管理系统的设计与实现
  • ⭕️【论文阅读】《Interactive Class-Agnostic Object Counting》
  • 高效的编程学习方法和技巧
  • sublime text插件开发
  • 【Linux网络】网络层协议:IP
  • 分布式接口文档聚合,Solon 是怎么做的?
  • 多尺度病理图像纹理特征作为肺腺癌预后预测的新指标|文献精读·24-08-09