2024年4月19日发(作者:)
Android屏蔽home键
博客分类:
• Android技术
Android
在activity中加上下面这段代码就可以屏蔽home
Java代码
1. @Override
2. public boolean onKeyDown(int keyCode, KeyEvent event)
3. {
4. // TODO Auto-generated method stub
5. // 按下键盘上返回按钮
6. if (keyCode == E_HOME)
7. {
8. Log.i("TAG","home");
9. (0);
10. return true;
11. }
12. else
13. return own(keyCode, event);
14. }
前提是,要重写onAttachedToWindow()这个方法。
Java代码
1. @Override
2. public void onAttachedToWindow()
3. {
4. dow().setType(_KEYGUA
RD_DIALOG);
5. chedToWindow();
6. }
因为android系统自己对home键在PhoneWindowManager中做了处理,不会返
回到上层应用。查看源代码:
frameworkspoliciesbasephonecomandroidinternalpolicyimplPhoneW
1089行
Java代码
1. if (code == E_HOME) {
2. // If a system window has focus, then it doesn't make sense
3. // right now to interact with applications.
4. Params attrs = win != null ? rs() : nu
ll;
5. if (attrs != null) {
6. final int type = ;
7. if (type == _KEYGUARD
8. || type == _KEYGUARD_DI
ALOG) {
9. // the "app" is keyguard, so give it the key
10. return false;
11. }
12. final int typeCount = WINDOW_TYPES_WHERE_HOME_DOESNT_
;
13. for (int i=0; i 14. if (type == WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[ i]) { 15. // don't do anything, but also don't pass it to the app 16. return true; 17. } 18. } 19. } 注意,activity中重写onAttachedToWindow()方法需要api 5以上 附API Level对照表 Android 2.3 - API Level 9 2.2 - 8 2.1 - 7 2..0.1 - 6 2.0 - 5 1.6 - 4 1.5 -3 1.1 - 2


发布评论