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

@VisibleForTesting
    final class ShutDownAction extends SinglePressAction implements LongPressAction {
   
        ShutDownAction() {
   
            super(R.drawable.ic_lock_power_off,
                    R.string.global_action_power_off);
        }

        @Override
        public boolean onLongPress() {
   
            mUiEventLogger.log(GlobalActionsEvent.GA_SHUTDOWN_LONG_PRESS);
            if (!mUserManager.hasUserRestriction(UserManager.DISALLOW_SAFE_BOOT)) {
   
             //   mWindowManagerFuncs.reboot(true);
                return true;
            }
            return false;
        }

        @Override
        public boolean showDuringKeyguard() {
   
            return true;
        }

        @Override
        public boolean showBeforeProvisioning() {
   
            return true;
        }

        @Override
        public 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.
     */
    @Override
    public void reboot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值