博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 禁用home键
阅读量:6298 次
发布时间:2019-06-22

本文共 2031 字,大约阅读时间需要 6 分钟。

hot3.png

android在4.4以后已经严格控制开发者对home键的操作权限,用户从应用级别禁止home键的可能性已经不大了。在4.4之前,可以通过 onAttachedToWindow 中设置 this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 但是在4.4以后这个属性已经被系统屏蔽了,不可再用。所以在4.4以后,应用级别只能对用户点击home键进行监听,而不能阻止。下面的方法就是监听用户点击home键的操作,并不能完成阻止。

首先,我们需要注册一个监听用户操作的广播,废话就不说了,直接上代码:

public class DoHomeWatcher {    private Context mContext;     private IntentFilter mFilter;     private InnerRecevier mRecevier;     /** * 监听类的构造方法: * 初始化的时候实例化自己的实现的IntentFilter(广播接收器) */     public DoHomeWatcher(Context context) {         mContext = context;         mFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);     }     /** 注册广播 */     public void startWatch(){         if (mRecevier != null){             mContext.registerReceiver(mRecevier, mFilter);         }     }     /** 注销广播 */     public void stopWatch(){         if (mRecevier != null) {             mContext.unregisterReceiver(mRecevier);         }     }     /** 广播接收器 */     class InnerRecevier extends BroadcastReceiver {         final String SYSTEM_DIALOG_REASON_KEY = "reason";         final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions";         final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps"; final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";     @Override        public void onReceive(Context context, Intent intent) {            String action = intent.getAction();            if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {                String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);                if (reason != null) {                    if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {                        //短按home键                    } else if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {                    //长安home键                    }                }            }        }    }}

在你需要的activity中注册广播,如果需要在activity中有需要的话,可以设置回调接口进行回调

DoHomeWatcher dhw = new DoHomeWatcher(this.getApplicationContext())

dhw.startWatch();

转载于:https://my.oschina.net/xuyuqiang/blog/775936

你可能感兴趣的文章
Javascript 中的 Array 操作
查看>>
java中包容易出现的错误及权限问题
查看>>
AngularJS之初级Route【一】(六)
查看>>
服务器硬件问题整理的一点总结
查看>>
SAP S/4HANA Cloud: Revolutionizing the Next Generation of Cloud ERP
查看>>
Mellanox公司计划利用系统芯片提升存储产品速度
查看>>
白帽子守护网络安全,高薪酬成大学生就业首选!
查看>>
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>
Oracle数据库的备份方法
查看>>
Selenium 自动登录考勤系统
查看>>
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>
高德开放平台开放源代码 鼓励开发者创新
查看>>