MTK平台 Android4.0.3 定制关机动画
实现效果是这样的,长按电源键弹出关机对话框,选择关机项将呈现关机动画和音乐直到正常关机完毕,下面说说具体思路及实现代码
找到长按电源键控制代码 /frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
- <span style="font-size:12px;">private final Runnable mPowerLongPress = new Runnable() {
- public void run() {
- // The context isn't read
- if (mLongPressOnPowerBehavior < 0) {
- mLongPressOnPowerBehavior = mContext.getResources().getInteger(
- com.android.internal.R.integer.config_longPressOnPowerBehavior);
- }
- switch (mLongPressOnPowerBehavior) {
- case LONG_PRESS_POWER_NOTHING:
- break;
- case LONG_PRESS_POWER_GLOBAL_ACTIONS:
- mPowerKeyHandled = true;
- performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
- sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
- showGlobalActionsDialog();
- break;
- case LONG_PRESS_POWER_SHUT_OFF:
- mPowerKeyHandled = true;
- performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
- sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
- mWindowManagerFuncs.shutdown();
- break;
- }
- }
- };
- </span>
方法 showGlobalActionsDialog() 就是控制关机选项对话框的弹出,点击关机项控制代码在
/frameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java
- <span style="font-size:12px;">new SinglePressAction(
- com.android.internal.R.drawable.ic_lock_power_off,
- R.string.global_action_power_off) {
- public void onPress() {
- // shutdown by making sure radio and power are handled accordingly.
- mWindowManagerFuncs.shutdown();
- }
- public boolean onLongPress() {
- mWindowManagerFuncs.rebootSafeMode();
- return true;
- }
- public boolean showDuringKeyguard() {
- return true;
- }
- public boolean showBeforeProvisioning() {
- return true;
- }
- });
- </span>
正常关机会调用此方法 mWindowManagerFuncs.shutdown(); 将弹出 “正在关机” 的弹出框, 现在我们需要在调用此方法时屏弊掉此对话框,同时播放动画和音乐,该如何做昵? 下面一步一步跟踪shutdown() 方法代码,不难发现你最终会找到这个类 /frameworks/base/services/java/com/android/server/pm/ShutdownThread.java 看看这部分代码
- <span style="font-size:12px;">synchronized (mEnableAnimatingSync) {
- if(!mEnableAnimating) {
- sInstance.mPowerManager.setBacklightBrightness(PowerManager.BRIGHTNESS_DIM);
- } else {
- if (mShutOffAnimation) {
- Log.e(TAG, "mIBootAnim.isCustBootAnim() is true");
- bootanimCust();
- } else {
- pd = new ProgressDialog(context);
- pd.setTitle(context.getText(com.android.internal.R.string.power_off));
- pd.setMessage(context.getText(com.android.internal.R.string.shutdown_progress));
- pd.setIndeterminate(true);
- pd.setCancelable(false);
- pd.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
- /* To fix video+UI+blur flick issue */
- pd.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
- pd.show();
- }
- sInstance.mHandler.postDelayed(mDelayDim, screenTurnOffTime);
- }
- }</span>
很明显 mShutOffAnimation 布尔变量是控制是否显示关机动画和默认“正在关机”弹出框的枢纽所在,当它为true时会播放事先放在/system/media/下的shutanimation.和shutaudio资源,而为false时,将会弹出默认“正在关机”对话框,所以此时,要想播放动画我们只需要保证mShutOffAnimation = true就成了,那么这就好改了,可以直接在 此方法的前面默认加上
- <span style="font-size:12px;">mShutOffAnimation = true;</span>
就成了,然后可以编译试试效果, 执行./makeMtk mm frameworks/base/services/java/ 将会生成out/target/product/xxx/system/framework/services.jar , 最后通过adb push 到手机shell下 /system/framework目录,重启手机,再关机,如果不出意外的话相信此刻已经出现迹了!!
MTK平台 Android4.0.3 定制关机动画相关推荐
- MTK平台Android 12自定义开关机动画铃声
完整的patch见 https://download.csdn.net/download/a785722173/87036230 修改文件和Q平台大同小异 Android Q自定义开关机动画_a785 ...
- 在Eclipse中导入编译MTK平台Android6.0源码的原生Gallery2应用
源码下载地址 由于工作的需要,需要在Eclipse中调试MTK平台Android6.0的原生Gallery2应用, 网上已经有很多类似的技术文章了,步骤都差不多, 但是MTK在google原生的Gal ...
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-1
UT-Exynos 4412 开发板SamSung A9四核4412开发平台android4.0.4体验 http://www.urbetter.com/main.asp lynn@urbetter. ...
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-10HDMI功能调试支持
经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-5联通3G功能调试支持
经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...
- UT-Exynos4412开发板三星ARM四核旗舰开发平台android4.0体验-7GPS功能调试支持
经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-17板载按键调试
经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,供广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-13串口功能调试
经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...
- UT-Exynos4412开发板三星ARM四核旗舰开发平台android4.0体验-12音频输入输出功能调试
经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...
最新文章
- 万物皆可JOJO:这个GAN直接让马斯克不做人啦 !Demo在线可玩!
- 网络请求可以返回数据的网站_实例解析|Python加解密VIP网站反爬请求头实现数据爬取...
- 操作系统OS-分页、页表
- poj 1151(线段树求面积并)
- MapReduce案例-wordcount-步骤分析
- Angular:Use function as controller
- MongDB集合文档操作符
- 【AI算法模型评测】2 如何评价多标签分类模型的好坏?
- Qt QString 与 const char* 类型的转换
- 自从在 IDEA 中用了热部署神器 JRebel,开发效率提升了 10 倍!
- 镀铬亮条怎么修复_「日系之光」曾经的亚洲C级车排面,十二代丰田皇冠全面修复日记...
- java数据库编程入门
- 你想要的宏基因组-微生物组知识全在这(2022.1)
- 6 检验并打印魔方矩阵c语言,检验并打印魔方矩阵
- IT服务管理(一)服务的演变与整体观
- Synonyms——中文近义词工具【含源码解析与改进】
- 通信LOGO隐秘史(设备商篇)
- GCN的Python实现与源码分析
- linux系统怎么取消下载,Linux系统怎么彻底删除文件
- 手机兼容性测试——机型选择(从系统、屏幕、型号考虑)
热门文章
- mysql 5.6 主从同步配置_Mysql 5.6主从同步配置
- 087_改变html
- echarts雷达图线的样式_echarts 雷达图的个性化设置
- ajax 返回数组某个属性值,js中sort方法根据数组中对象的某一个属性值进行排序...
- mysql repo_centos7下使用wget命令安装mysql
- linux usr g 空间不足,centos 磁盘空间不足
- php curl ob start,curl - php中开启缓冲压缩 ob_start('ob_gzhandler') 之后是在什么时候开始的压缩?...
- java压测请求线程数_程序员撕开京东 618 大促压测的另一面 | 原力计划
- php中的static,php中的static
- Linux下的硬链接和软链接