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行业感兴趣的新人

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

资料⬅专栏获取

相关推荐
summerkissyou19879 小时前
Android - 摄像头 - hal - 开发教程,例子,常见问题,分析方法,解决方案
android
summerkissyou198710 小时前
Android 16 架构图
android
神龙天舞200110 小时前
MySQL 备库为什么会延迟好几个小时
android·数据库·mysql
码农coding13 小时前
android12 systemUI 之锁屏
android
圆山猫14 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v
爱笑鱼14 小时前
Binder(七):getCallingUid() 读到的是谁?clearCallingIdentity() 又清掉了什么?
android
2501_9159090620 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
Lvan的前端笔记20 小时前
AndroidX 完全入门指南
android·androidx
帅次20 小时前
Android 应用高级面试:Window 近1年高频追问 18 题
android·面试·职场和发展
总捣什么乱121 小时前
MySQL MySQL是怎么保证主备一致的?
android·mysql·adb