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

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

资料⬅专栏获取

相关推荐
zopple6 小时前
Laravel9.X重磅升级:十大核心特性解析
android
私人珍藏库6 小时前
【windows】跨平台 Android 刷机Root工具箱
android·windows·工具·刷机·软件·多功能
summerkissyou19878 小时前
Android-MediaSession-播放流程和例子
android·mediasession
私人珍藏库9 小时前
[Android] 蓝叠模拟器工具箱v1.1
android·智能手机·app·工具·软件·多功能
云霄IT11 小时前
安卓开发之java转dex再转smali
android·java·python
XiaoLeisj12 小时前
Android 短视频项目实战:从用户中心页与沉浸式登录,到验证码鉴权、用户信息持久化和 EventBus 登录态同步
android·webview·eventbus·countdowntimer·token 加密·键值对存储 sp·封装toast/加载 ui
JJay.13 小时前
Android BLE 扫描连接与收发消息实战
android
fly spider14 小时前
MySQL索引篇
android·数据库·mysql
xinhuanjieyi14 小时前
php setplayersjson实现类型转换和文件锁定机制应对高并发
android·开发语言·php
533_14 小时前
[vxe-table] 表头:点击出现输入框
android·java·javascript