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. 中国地图_铜板画地图铜地球仪高档办公室装饰用品定制铜版画地图中国地图世界地图定制惠风堂铜雕艺术...
  2. git提交pull request到主项目
  3. mysql和hive的sql语句,hive中使用sql语句需要注意的事项
  4. 【JS】执行上下文(ExcecutionContext)
  5. mysql的外键_mysql如何查看外键
  6. Linux下OneinStack一键安装JAVA+PHP+Tomcat+Nginx+MySQL网站环
  7. 用74ls90组成二十四进制计数器_CD4017是什么?十进制计数器分频器CD4017的逻辑功能呢?...
  8. Python之with语句
  9. ln -s 一定要用绝对路径
  10. canvas设置字体粗细用数字没效果_干货 | 用uni-app制作迷你PS小程序
  11. 物联网中无线通信技术
  12. Redis 安装说明
  13. linux常用命令(2)关机重启 文本编辑器 系统管理 软件安装
  14. redis 失效时间单位是秒还是毫秒_经常用Redis,这些坑你知道吗?
  15. 使用HSL连接欧姆龙PLC配置
  16. 合并 2 个有序列表(关键词:有序列表/有序/合并/归并)
  17. Linux下安装Oracle 11g详细过程
  18. 5G智慧灯杆网关的行业应用与前景
  19. 人工智能时代的幼儿教育软件
  20. 【无人驾驶系列九】无人驾驶系统安全

热门文章

  1. Linux 电源管理子系统
  2. redis分布式集群数据库搭建
  3. nvme固态必须uefi启动吗_听说这招能在3秒内启动Windows10,很多高手都这么做,你知道吗?...
  4. AppScan扫描器的用法
  5. 348-单机,集群和分布式
  6. IMX6开发板显示中文
  7. imx6开发板学习过程
  8. 扫雷c语言判断鼠标按下,请问扫雷这个程序怎么显示出鼠标呀??(内有源程序)...
  9. xrdp linux 3389 端口,在 Linux 中使用 xrdp - Azure Virtual Machines | Microsoft Docs
  10. 水果店的location