Android 6.0长按电源键添加重启菜单

这篇具有很好参考价值的文章主要介绍了Android 6.0长按电源键添加重启菜单。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 重启图标:frameworks/base/core/res/res/drawable-hdpi/ic_lock_power_reboot_alpha.png
  2. frameworks/base/core/res/res/drawable/ic_lock_power_reboot.xml
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_lock_power_reboot_alpha"
+    android:tint="?attr/colorControlNormal" />
  1. frameworks/base/core/res/res/values/config.xml
     <string-array translatable="false" name="config_globalActionsList">
         <item>power</item>
+        <item>reboot</item><!-- mh.mmi add reboot -->
         <item>bugreport</item>
         <item>users</item>
     </string-array>
  1. frameworks/base/core/res/res/values/public.xml
     <public type="string" name="fingerprint_icon_content_description" />
+    <!-- mh.mmi reboot icon -->
+    <public type="drawable" name="ic_lock_power_reboot" id="0x010800b4" />   
  1. frameworks/base/services/core/java/com/android/server/policy/GlobalActions.java
 import java.util.List;
 
+import android.os.IPowerManager;///mh.mmi

 /**
  * Helper to show the global actions dialog.  Each item is an {@link Action} that
  * may show depending on whether the keyguard is showing, and whether the device
@@ -93,6 +95,7 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
     /* Valid settings for global actions keys.
      * see config.xml config_globalActionList */
     private static final String GLOBAL_ACTION_KEY_POWER = "power";
+    private static final String GLOBAL_ACTION_KEY_REBOOT = "reboot";///mh.mmi
     private static final String GLOBAL_ACTION_KEY_AIRPLANE = "airplane";
     private static final String GLOBAL_ACTION_KEY_BUGREPORT = "bugreport";
     private static final String GLOBAL_ACTION_KEY_SILENT = "silent";
@@ -273,6 +276,8 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
             }
             if (GLOBAL_ACTION_KEY_POWER.equals(actionKey)) {
                 mItems.add(new PowerAction());
+            } else if (GLOBAL_ACTION_KEY_REBOOT.equals(actionKey)) {///mh.mmi
+                mItems.add(new RebootAction());
             } else if (GLOBAL_ACTION_KEY_AIRPLANE.equals(actionKey)) {
                 mItems.add(mAirplaneModeOn);
             } else if (GLOBAL_ACTION_KEY_BUGREPORT.equals(actionKey)) {
@@ -366,6 +371,37 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
             mWindowManagerFuncs.shutdown(false /* confirm */);
         }
     }
+       
+    ///mh.mmi start
+    private final class RebootAction extends SinglePressAction {
+            
+        private RebootAction() {
+            super(com.android.internal.R.drawable.ic_lock_power_reboot, R.string.factorytest_reboot);
+        }
+        
+        @Override
+        public boolean showDuringKeyguard() {
+            return true;
+        }
+        
+        @Override
+        public boolean showBeforeProvisioning() {
+            return true;
+        }
+        
+        @Override
+        public void onPress() {
+            try {
+                IPowerManager pm = IPowerManager.Stub.asInterface(ServiceManager.getService(Context.POWER_SERVICE));
+                pm.reboot(true, null, false);
+            }
+            catch (RemoteException e) {
+                Log.e(TAG, "PowerManager service died!", e);
+                return;
+            }
+        }
+    }
+    ///mh.end
 
     private Action getBugReportAction() {
         return new SinglePressAction(com.android.internal.R.drawable.ic_lock_bugreport,

文章来源地址https://www.toymoban.com/news/detail-682489.html

到了这里,关于Android 6.0长按电源键添加重启菜单的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android10 Settings系列(三)根据需求动态添加删除一级菜单、二级菜单的设置项

    当时遇到定制需求,需要根据实际需要隐藏Settings的菜单项,于是开始了寻找方法 在看了一下源码,经过尝试后,确认生效后,就简单说明一下Settings中布局中主要组成元素 Settings中的菜单项是由 PreferenceScreen 和Preference组成的。其中PreferenceScreen 类似于我们平常使用布局中的

    2024年02月14日
    浏览(59)
  • Android桌面长按图标快捷方式——Shortcuts

    简介 当我们在长按Android应用的桌面图标时,一般回弹出一个列表,上面一般有应用信息、卸载应用等功能,并且部分应用在这里还添加了自己的快捷方式,今天主要介绍如何添加自定义的快捷方式。 长按桌面显示的快捷方式在Android中叫Shortcut,它有两种创建方式,分为静态

    2023年04月22日
    浏览(48)
  • Android EditText 屏蔽双击选中、长按选中

    同时屏蔽双击选中 和 长按选中: 只屏蔽长按选中: 双击或长按都是 Touch事件,所以先看EditText的 onTouchEvent 方法,EditText中 没有 onTouchEvent方法,而 class EditText extends TextView ,所以查看TextView 的 onTouchEvent 方法。 updateSelection() -- updateSelectionInternal() -- Selection.setSelection((Spannab

    2024年02月13日
    浏览(52)
  • Android 开关机POWER键 长按短按代码分析

    路径:frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

    2024年02月11日
    浏览(49)
  • Android 13 Launcher——长按图标弹窗背景变暗

    目录 一.背景 二.修改代码 客户定制需要长按图标弹窗让其背景变暗,所以需要进行定制,如下是定制流程,本篇是接上篇https://gonglipeng.blog.csdn.net/article/details/132171100 的内容 主要代码逻辑在ArrowPopup中的reorderAndShow方法和closeComplete方法中,其中reorderAndShow方法是为了让其显示

    2024年02月13日
    浏览(60)
  • 【Android】Android Framework系列---CarPower电源管理

    智能座舱通常包括中控系统、仪表系统、IVI系统 、后排娱乐、HUD、车联网等。这些系统需要由汽车电源进行供电。由于汽车自身的特殊供电环境(相比手机方便的充电环境,汽车的蓄电池如果没有电是需要专业人士操作的),其电源状态会比较复杂,既要满足车内的座舱系统

    2024年02月07日
    浏览(47)
  • Android基于opencv4.6.0实现人脸识别功能

    步骤: 1.整合opencv 2.获取相机的SurfaceView传到native层去检测(亦或是不断的获取SurfaceView的Bitmap,传到native层) 3.检测人脸,在本地保存人脸特征信息 4.上传至后台(不实现) 人脸识别实现的思路(例:人脸登录) 1.人脸信息录入 1.1获取相机的Bitmap,检测人脸(保证人脸信息比较精准

    2024年02月03日
    浏览(48)
  • Android 11.0 SystemUI禁用长按recent键的分屏功能

    在11.0的系统rom产品定制化中,系统对于多窗口模式默认会有分屏功能的,但是在某些产品中,需要禁用分屏模式,所以需要在导航栏中 禁用长按recent的分屏模式功能,接下来分析下相关分屏模式的实现 在Android应用程序中,导航栏(NavigationBarView)是一个重要的UI组件,默认位于屏

    2024年02月20日
    浏览(93)
  • Android电源管理介绍

    一、电源管理基础知识 1.1电源管理的几种状态 Android kernel源码中,定义了三种电源状态,在kernel/power/suspend.c中: 对应的宏定义/include/linux/suspend.h 1.2 电源管理状态的介绍: PM_SUSPEND_ON 设备处于正常工作状态 PM_SUSPEND_STANDBY 设备处于省电状态,但还可以接收某些事件 PM_SUSPEND

    2023年04月08日
    浏览(38)
  • Android 电源键事件流程分析

    电源按键流程处理逻辑在 PhoneWindowManager.java 类中的 dispatchUnhandledKey 方法中 从dispatchUnhandledKey方法开始分析 关于电源按键的核心逻辑在interceptFallback方法里的interceptKeyBeforeQueueing方法里 当按下的时候,执行interceptPowerKeyDown方法 1、Android 按电源键亮屏/息屏流程 1、亮屏 1.1、 P

    2024年02月06日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包