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

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

资料⬅专栏获取

相关推荐
拭心4 小时前
Google 提供的 Android 端上大模型组件:MediaPipe LLM 介绍
android
带电的小王6 小时前
WhisperKit: Android 端测试 Whisper -- Android手机(Qualcomm GPU)部署音频大模型
android·智能手机·whisper·qualcomm
梦想平凡6 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
元争栈道7 小时前
webview和H5来实现的android短视频(短剧)音视频播放依赖控件
android·音视频
阿甘知识库8 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
元争栈道8 小时前
webview+H5来实现的android短视频(短剧)音视频播放依赖控件资源
android·音视频
MuYe8 小时前
Android Hook - 动态加载so库
android
居居飒9 小时前
Android学习(四)-Kotlin编程语言-for循环
android·学习·kotlin
Henry_He12 小时前
桌面列表小部件不能点击的问题分析
android
工程师老罗12 小时前
Android笔试面试题AI答之Android基础(1)
android