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

"电源键长按"(globalscreen)

"Home键"(homekey)

"Home长按"(recentapps)

我们可以使用广播来实现,如:

[java] view plain copy print ?

  1. package com.jumpinus.test;

  2. import android.app.Activity;

  3. import android.content.BroadcastReceiver;

  4. import android.content.Context;

  5. import android.content.Intent;

  6. import android.content.IntentFilter;

  7. import android.os.Bundle;

  8. public class MainActivity extends Activity {

  9. private MyBroadCastReceiver myBroadCastReceiver;

  10. @Override

  11. protected void onCreate(Bundle savedInstanceState) {

  12. // TODO Auto-generated method stub

  13. super.onCreate(savedInstanceState);

  14. myBroadCastReceiver = new MyBroadCastReceiver();

  15. }

  16. @Override

  17. protected void onResume() {

  18. // TODO Auto-generated method stub

  19. super.onResume();

  20. IntentFilter intentFilter = new IntentFilter();

  21. intentFilter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);

  22. System.out.println("I'm coming, myBroadCastReceiver注册了!");

  23. registerReceiver(myBroadCastReceiver, intentFilter);

  24. }

  25. private class MyBroadCastReceiver extends BroadcastReceiver{

  26. @Override

  27. public void onReceive(Context context, Intent intent) {

  28. //你自己先把 reasons == homekey 和 长按homekey 排除,剩下的做下面的处理

  29. String reason = intent.getStringExtra("reason");

  30. if (intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){

  31. System.out.println("Intent.ACTION_CLOSE_SYSTEM_DIALOGS : " + intent.getStringExtra("reason"));

  32. if (intent.getExtras()!=null && intent.getExtras().getBoolean("myReason")){

  33. myBroadCastReceiver.abortBroadcast();

  34. }else if (reason != null){

  35. if (reason.equalsIgnoreCase("globalactions")){

  36. //屏蔽电源长按键的方法:

  37. Intent myIntent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);

  38. myIntent.putExtra("myReason", true);

  1. context.sendOrderedBroadcast(myIntent, null);

  2. System.out.println("电源 键被长按");

  3. }else if (reason.equalsIgnoreCase("homekey")){

  4. //屏蔽Home键的方法

  5. //在这里做一些你自己想要的操作,比如重新打开自己的锁屏程序界面,这样子就不会消失了

  6. System.out.println("Home 键被触发");

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

链图片转存中...(img-7gRaGo11-1719082043497)]一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

相关推荐
火柴就是我39 分钟前
Flutter 混合模式下:saveLayer 混合注意点
android·flutter
Mintopia1 小时前
🎙️ React Native(RN)语音输入场景全解析
android·react native·aigc
centor1 小时前
国际版 UnitySetup-Android-Support 安装 Mac 设备
android·macos
城东米粉儿1 小时前
compose 中的附带效应笔记一
android
STCNXPARM2 小时前
Android14显示系统 - VSYNC机制
android·surfaceflinger·vsync
say_fall2 小时前
C++ 类与对象易错点:初始化列表顺序 / 静态成员访问 / 隐式类型转换
android·java·开发语言·c++
落羽凉笙2 小时前
Python基础(4)| 详解程序选择结构:单分支、双分支与多分支逻辑(附代码)
android·服务器·python
携欢2 小时前
portswigger靶场之修改序列化数据类型通关秘籍
android·前端·网络·安全
·云扬·3 小时前
MySQL四大系统库详解:作用、核心表与实用SQL查询
android·sql·mysql
普马萨特3 小时前
移动网络信号指标与单位整理(2G/3G/4G/5G Android vs IoT)
android·网络·物联网