不行啊,屏蔽home要重写public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
} ,但this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 这句会使之前的设置全屏的代码失效网上搜了一下,很多遇到这个问题,都没有一个解决的办法,但很多锁屏软件都实现了这样的功能,我觉得肯定是有办法的
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
} ,但this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 这句会使之前的设置全屏的代码失效网上搜了一下,很多遇到这个问题,都没有一个解决的办法,但很多锁屏软件都实现了这样的功能,我觉得肯定是有办法的
if(keyCode==KeyEvent.KEYCODE_HOME){
return true;
}
return super.onKeyDown(keyCode, event);
}这样试试可以吗
屏蔽home找了一点 看能帮你么public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}我记得以前做过 普通的方法不能屏蔽home的
或者你可以参考这个方法http://www.eoeandroid.com/forum.php?mod=viewthread&tid=65626
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);xml中:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"都试了一下,如果重写
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}就不能全屏了
我就是在全屏下这样做了,
唯一不同的是,我在按下HOME键是提示输入密码 再返回。
public boolean onKeyDown(int keyCode,KeyEvent event){ switch(keyCode){
case KeyEvent.KEYCODE_HOME:return true;
case KeyEvent.KEYCODE_BACK:return true;
case KeyEvent.KEYCODE_MENU:return true;
case KeyEvent.KEYCODE_CALL:return true;
case KeyEvent.KEYCODE_SYM: return true;
case KeyEvent.KEYCODE_VOLUME_DOWN: return true;
case KeyEvent.KEYCODE_VOLUME_UP: return true;
case KeyEvent.KEYCODE_STAR: return true;
} return super.onKeyDown(keyCode, event); }
似乎对home键不起作用,不知道能不能贴出你的代码给我看一下,我对比一下。
AlertDialog d = b.create();
d.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
你说的是这样么?我把这段尝试地放到我的代码里,如果不调用AlertDialog.show()这个代码就没什么效果,但一调用AlertDialog.show()就崩溃能不能贴段示例代码?
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
=================================================================
声明权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />在activity类中声明函数和成员: Runnable mDisableHomeKeyRunnable = new Runnable() {
@Override
public void run() {
disableHomeKey();
}
};
Handler mHandler = new Handler(); public void disableHomeKey()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
}在onCreate中调用:
mHandler.postDelayed(mDisableHomeKeyRunnable,200);
==============================================================
方法完毕。我也试过调用mHandler.post(mDisableHomeKeyRunnable);但这样就activity就不是全屏了至此问题解决,谢谢各位的帮助!!!
QQ 249480300
=================================================================
声明权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />在activity类中声明函数和成员: Runnable mDisableHomeKeyRunnable = new Runnable() {
@Override
public void run() {
disableHomeKey();
}
};
Handler mHandler = new Handler(); public void disableHomeKey()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
}在onCreate中调用:
mHandler.postDelayed(mDisableHomeKeyRunnable,200);
==============================================================
方法完毕。我也试过调用mHandler.post(mDisableHomeKeyRunnable);但这样就activity就不是全屏了至此问题解决,谢谢各位的帮助!!!
为什么我把这个方法集成到项目中会报错呢, java.lang.IllegalArgumentException: Window type can not be changed after the window is added.网上说这个方法也是使用在4.0以前的。所以求解4.0+的应该怎么做呢???