Android 中屏蔽"电源键长按"、"Home键"、"Home键长按"

这几个“按钮”的触发,都会产生一个Action == Intent.ACTION_CLOSE_SYSTEM_DIALOGS的通知

区分他们三个的不同事件的参数,就是随着Intent带过来的reason字符串,分别对应

"电源键长按"(globalscreen)、"Home键"(homekey)、"Home键长按"(recentapps)

说破了就这么简单,直接上代码了。

package com.jumpinus.test;import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;public class MainActivity extends Activity {private MyBroadCastReceiver myBroadCastReceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);myBroadCastReceiver = new MyBroadCastReceiver();}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);System.out.println("I'm coming, myBroadCastReceiver注册了!");registerReceiver(myBroadCastReceiver, intentFilter);}private class MyBroadCastReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {//你自己先把 reasons == homekey 和 长按homekey 排除,剩下的做下面的处理String reason = intent.getStringExtra("reason");if (intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){System.out.println("Intent.ACTION_CLOSE_SYSTEM_DIALOGS : " + intent.getStringExtra("reason"));if (intent.getExtras()!=null && intent.getExtras().getBoolean("myReason")){myBroadCastReceiver.abortBroadcast();}else if (reason != null){if (reason.equalsIgnoreCase("globalactions")){//屏蔽电源长按键的方法:Intent myIntent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);myIntent.putExtra("myReason", true);context.sendOrderedBroadcast(myIntent, null);System.out.println("电源  键被长按");}else if (reason.equalsIgnoreCase("homekey")){//屏蔽Home键的方法//在这里做一些你自己想要的操作,比如重新打开自己的锁屏程序界面,这样子就不会消失了System.out.println("Home 键被触发");}else if (reason.equalsIgnoreCase("recentapps")){//屏蔽Home键长按的方法System.out.println("Home 键被长按");}}}}}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();System.out.println("I get out, myBroadCastReceiver注销了!");unregisterReceiver(myBroadCastReceiver);}
}


效果图:


android 屏蔽电源键,home键相关推荐

  1. android长按home键设置的,Android中屏蔽电源键长按、Home键、Home键长按

    Android中屏蔽电源键长按.Home键.Home键长按 这几个"按钮"的触发,都会产生一个Action ==Intent.ACTION_CLOSE_SYSTEM_DIALOGS ...

  2. android 屏蔽home键操作

    1.重写onAttachedToWindow public void onAttachedToWindow() { this.getWindow().setType(WindowManager.Lay ...

  3. android4.2 拦截power键,Android 屏蔽Power键 Home键

    2014-04-18 17:22 1557人阅读 评论(0) 收藏 举报 分类: Android(46) 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近正在处理工厂测试的功能,里面有个功能 ...

  4. 直播源码开发,Android 屏蔽返回键(后退键)

    直播源码开发,Android 屏蔽返回键(后退键) 方案一 在Activity中重写onBackPressed方法(推荐使用). @Override public void onBackPressed ...

  5. android怎么模拟返回,Android中障蔽返回键,HOME键以及模拟HOME键返回效果的方法...

    Android中屏蔽返回键,HOME键以及模拟HOME键返回效果的方法 在Android开发中,有时需要屏蔽一些实体的按键,如HOME键,返回键等实体的按键,实现的方法如下. 1. 屏蔽实体按键 屏蔽 ...

  6. Android 关于长按back键退出应用程序的实现

    Android 关于长按back键退出应用程序的实现 最近在做一个Android上的应用,碰到一个问题就是如何实现长按back键退出应用程序.在网上查找了很多资料,发现几乎没有这样的实现,大部分在处理 ...

  7. android动态加home,Android 解决监听home键的几种方法

    Android 解决监听home键的几种方法 前言: 以下两种方法可以完美解决监听back键,home键,多任务键(最近任务键). 一.使用注册广播监听home键.多任务键 演示图 创建一个广播代码如 ...

  8. android 9.0 10.0 去掉音量键+Power键组合键的屏幕截图功能

    1.概述 在10.0的系统中由WindowManagerService这个系统服务来循环读取窗口获取的消息(包括按下,弹起,双击,单击等)然后分发到各个类接收处理这些消息,在这个过程中PhoneWin ...

  9. android设置返回按钮无效,Android onKeyDown监听返回键无效的解决办法

    Android onKeyDown监听返回键无效的解决办法 当我们的Activity继承了TabActivity,在该类中重写onKeyDown是监听不到返回键的, 具体解决方法如下: 重写dispa ...

  10. android获取spinner的值_在Android的Spinner中实现键值对的正确方法是什么

    这是在Android中为Spinner实现键值对的正确方法吗? package com.mypackage import android.app.Activity; import android.os ...

最新文章

  1. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL,spring获取context...
  2. Android知识点小结
  3. hadoop--集群崩溃处理方法
  4. EMC-- DFC --Sessions and Session Managers
  5. @工程师,怎样才能让面试者一眼相中你?
  6. 两强格局初定,网易云能拿什么跟腾讯音乐打
  7. 阿特拉斯atlas扭矩枪 USB通讯教程基于MTCOM
  8. Ti杯电子竞赛前期准备工作
  9. gmod服务器文件,gmod服务器里改名字指令 | 手游网游页游攻略大全
  10. 深度学习论文: Avoiding Overfitting: A Survey on Regularization Methods for Convolutional Neural Networks
  11. 苹果系统虚拟计算机win7,Mac虚拟机安装Win7 64位系统教程_苹果虚拟机安装Win7真的很简单...
  12. 腾讯实时音视频SDK[三]:小程序端实现
  13. Unity多人游戏简单实例(一)快速入门
  14. linux安装xbox无线手柄,ROS配置和使用Xbox One无线手柄
  15. OSChina 周三乱弹 ——grath最近睡了一主播
  16. 告别2017,拥抱2018!
  17. centos 编译 rabbitmq-c 遇到 undefined reference to OPENSSL_init_ssl, BIO_meth_set_read 等报错的解决
  18. 文章自曝出轨马伊琍真原谅了?
  19. 【UnityShader】云海效果模拟与视差映射
  20. 【Idea调试】Cannot resolve plugin org.springframework.boot:spring-boot-maven-plugin:3.0.1

热门文章

  1. C++ 求解最小公倍数
  2. Ubuntu18.04 域名解析失败
  3. SLAM之回环检测与优化
  4. php接入飞鹅打印机
  5. 尚德机构2020年Q4财报:净收入5.85亿元,管理费用同比大幅下降近五成
  6. 我的过错不值得原谅,麻木的岁月我还要背负多久。
  7. JS实现图结构封装,使用邻接表实现(广度优先搜索,深度优先搜索)
  8. 计算机作文 六年级,我和电脑600字_六年级作文_小学作文 - 265学校教育网
  9. 常用的正则表达式,复制粘贴,正则就这么简单
  10. 分享一款统计手机使用时间的APP,帮助集中注意力,拒绝手机上瘾,支持双端