Android中屏蔽电源键长按、Home键、Home键长按 这几个“按钮”的触发,都会产生一个Action ==Intent.ACTION_CLOSE_SYSTEM_DIALOGS的通知 区分他们三个的不同事件

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;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

myBroadCastReceiver = new MyBroadCastReceiver();

}

@Override

protected void onResume() {

// TODO Auto-generated method stub

super.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{

@Override

public 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 键被长按");

}

}

}

}

}

@Override

protected void onPause() {

// TODO Auto-generated method stub

super.onPause();

System.out.println("I get out, myBroadCastReceiver注销了!");

unregisterReceiver(myBroadCastReceiver);

}

}

效果图:

android长按home键设置的,Android中屏蔽电源键长按、Home键、Home键长按相关推荐

  1. Android手机电池耐用吗,简单设置使Android手机电池更耐用

    一般情况下,Android手机作为智能手机在待机方面的表现上还是很不错的,只是无法达到低端手机那样一个星期的正常待机时间,当然我们可以利用一些简单的使用习惯及设置帮助Android手机更加耐用. 1. ...

  2. android tween动画平移怎么设置时间,android Tween Animation属性设置方法实例

    在Android开发中,Animation是用来给控件制作效果的.大多数的控件都可以用这个类,这个类包含了4种基本动作,分别为移动,旋转,淡入淡出,缩放.在使用Animation时,可以在.java文 ...

  3. android长按非控件处,Android常用之Butterknife使用详解

    Butterknife简介 Butterknife中文又名黄油刀,是 JakeWharton大神开源的一款Android视图的字段和方法绑定快速注解框架.也是Android开发中比较常用的一款快速注解 ...

  4. android按钮设置下划线,Android开发如何给textView设置下划线或中划线

    关键字:android,android开发,下划线,中划线 我们在开发应用的时候,尤其是在做商城项目的时候,需要用到原价格以及降价后的价格,这就不可避免用到中划线或者下划线,在原价格上做一个中划线,这 ...

  5. android 友盟统计动态设置渠道,Android 友盟多渠道打包

    一.简介 为了统计不同渠道上的下载数量及用户活动情况,方便后台做运营统计.我们需要在安装包中添加不同的标识(渠道信息 Channel).多渠道的实现方式多种多样,此篇只实现友盟多渠道打包的方法.友盟多 ...

  6. python语言的缩进可以采用tab键实现吗_python中使用空格还是使用 Tab键缩进的建议...

    对于程序员来说,其实Tab和空格远远不只是"立场"问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了.空格 ...

  7. 在 JavaScript 中获取对象的第一个键名

    本文将演示如何提取对象第一个属性的键(键值对). 目录 1.在JavaScript中获取对象的第一个键名 2.用于object.entries()在JavaScript 中获取对象的第一个键名 3.用 ...

  8. android长按home键流程

    home键在KeyEvent中的键值为3. public static final int KEYCODE_HOME            = 3; 当用户按下home键的时候(包括长按),程序会进入 ...

  9. Android 长按电源键和短按电源键的详细处理流程

    1 Android Android4.x在Framework的PhoneWindowManager对Power(KeyEvent.KEYCODE_POWER)和Home(KeyEvent.KEYCOD ...

最新文章

  1. 部署ArcGIS JS API 离线包(Tomcat与IIS)
  2. 独家 | 菜鸟级机器学习入门(附代码实例)
  3. 设置WPF窗口相对于非WPF窗口的位置
  4. CVE-2015-3636(pingpong root) android内核 UAF漏洞分析
  5. 微型计算机与接口技术考试题,微机原理与接口技术试题库2
  6. Struts框架原理分析之我见
  7. Sitemesh 3 的使用及配置
  8. 在c++中qsort()排序函数的使用qsort函数应用大全
  9. WCF简单教程(5) 用IIS做Host
  10. EevExpress中XtraGrid常用方法
  11. 通过取父级for循环的i来理解闭包,iife,匿名函数
  12. Golang——变量和常量详解
  13. 无连接可靠传输_FPC连接器的特点以及弹片微针模组的作用
  14. 中国移动也要办电竞大赛了!联合腾讯网易办首届电竞大赛
  15. 如何使用libxml2库[转]
  16. 腾讯浏览器(X5WebView的使用)
  17. UiPath中文教程PDF
  18. 从辣条国家标准到 java 接口规范
  19. 比尔·盖茨、UNIX之父等全球14位IT大佬,总结的18句编程名言!
  20. 5 打印选课学生名单

热门文章

  1. jupyter入门之图像处理
  2. 使用 Apriori 算法进行关联分析(机器学习)
  3. 保护您的企业数据免受.mkp勒索病毒:恢复加密数据库的关键策略
  4. c++ getpid函数_C Linux中的getpid()和getppid()函数
  5. 基于web的摩托车销售系统的设计与实现 毕业设计-附源码031706
  6. Android下载demo
  7. VS2012没有ADO.NET实体数据模型?解决方法
  8. 12:Integer to Roman(数字转为罗马数字)
  9. discuz要什么系统服务器,Discuz! Q安装,服务器要求详细说明
  10. Android 推送 整合小米、个推、jpush