Android 中屏蔽 Home 键

简介:

原文:http://www.cnblogs.com/newcj/articles/2066337.html

public void onAttachedToWindow()
{  
       this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
       super.onAttachedToWindow(); 	
}

在activity中加上这段代码就可以屏蔽home,至于为什么,因为android系统自己对与home键power键在PhoneWindowManager中做了处理,不会返回到上层应用的,但是我在看这部分代码的时候看到:

\frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.java 1089行
 
if (code == KeyEvent.KEYCODE_HOME) {
 
            // If a system window has focus, then it doesn't make sense
            // right now to interact with applications.
            WindowManager.LayoutParams attrs = win != null ? win.getAttrs() : null;
            if (attrs != null) {
                final int type = attrs.type;
                if (type == WindowManager.LayoutParams.TYPE_KEYGUARD
                        || type == WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG) {
                    // the "app" is keyguard, so give it the key
                    return false;
                }
                final int typeCount = WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.length;
                for (int i=0; i<typeCount; i++) {
                    if (type == WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i]) {
                        // don't do anything, but also don't pass it to the app
                        return true;
                    }
                }
            }

type == WindowManager.LayoutParams.TYPE_KEYGUARD这一句,我们可以看到,android对于锁屏特殊判断了,所以我就模拟这个进行的实现,只是有一点,activity中重写onAttachedToWindow()方法需要api 5以上。
相关文章
|
Android开发
Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听
原文:Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听 简单记录下android 盒子开发遥控器的监听 ,希望能帮到新入门的朋友们 不多说,直接贴代码 public...
7695 0
|
Java Android开发
android 7.1 屏蔽按压两次电源键(KEYCODE_POWER)打开相机
android 7.1 屏蔽按压两次电源键(KEYCODE_POWER)打开相机
330 0
|
监控 Android开发 开发者
Android平台GB28181设备接入端本地SIP端口被占用或屏蔽怎么办?
好多开发者或厂商,对Android平台GB28181接入模块的定位,大多是IPC国标流程打通模拟,基于这个目的,很难按照标准SPEC规范实现Android平台GB28181设备接入,我们在跟第三方国标平台厂商对接时发现,部分公司,尽管参与了标准的制定或审校,自身实现,细节仍不尽人意。
103 0
|
Java 数据库 Android开发
Android MTK平台 客制化系统来电界面(屏蔽 InCallUI 提供接口给客户自行展示来电去电页面)
Android MTK平台 客制化系统来电界面(屏蔽 InCallUI 提供接口给客户自行展示来电去电页面)
279 0
|
Java Shell API
Android源码(6.0和8.1) 屏蔽状态栏下拉和屏蔽导航栏显示
Android源码(6.0和8.1) 屏蔽状态栏下拉和屏蔽导航栏显示
522 0
|
Java 数据库 Android开发
Android 7.1 异常删除data文件导致HOME键失效
Android 7.1 异常删除data文件导致HOME键失效
217 0
|
Android开发 数据安全/隐私保护
安卓系统home键监听及系统锁屏状态监听___Android提高篇
安卓系统home键监听及系统锁屏状态监听___Android提高篇
478 0
|
Android开发 数据安全/隐私保护
安卓系统home键监听及系统锁屏状态监听___Android提高篇
安卓系统home键监听及系统锁屏状态监听___Android提高篇
852 0
|
Java Android开发
android中开启ProgressDialog进度条之后,屏蔽返回按键。
android中开启ProgressDialog进度条之后,屏蔽返回按键。
177 0
|
Android开发
Android屏蔽/禁止ViewPager左右滑动/滚动
Android屏蔽/禁止ViewPager左右滑动/滚动 Android原生的ViewPager自带左右滚动,滑动效果,切换ViewPager中的内容。
4080 0