Android 屏蔽Home键(2.2、2.3/4.0以上)

来源:互联网 发布:淘宝店铺装修模板制作 编辑:程序博客网 时间:2024/05/22 02:00

有做过锁屏功能的都知道,Android屏蔽home键的方法会受到系统版本的影响,以2.2/2.3和4.0以上分两种情况。
在android2.2/2.3中可以通过在activity中重写

@Overridepublic void onAttachedToWindow() {this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);super.onAttachedToWindow();}
需要注意的是这个方法如果用到4.0以上的系统将会报以下错:

java.lang.IllegalArgumentException: Window type can not be changed after the window is added.


android4.0以上屏蔽掉home键的方法为:

1、在4.0以上的版本中需要利用以下方法屏蔽和重写Home键,代码如下:

public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; //需要自己定义标志@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码setContentView(R.layout.main);}

2、再重写onKey事件即可。

@Overridepublic boolean onKeyDown( int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (keyCode == event. KEYCODE_HOME) {return true;}return super.onKeyDown(keyCode, event);}


在AndroidMainfest.xml需要加权限: 

<uses-permission android:name = "android.permission.DISABLE_KEYGUARD"/><!-- 屏蔽HOME键需要的权限 -->
在配置文件中,在使用了Notification的activity中加一个属性android: android:launchMode="singleInstance"
0 0
原创粉丝点击