Android系统在之前是可以轻轻松松吧下拉菜单、Home键给屏蔽掉,但现在谷歌为了安全起见,还是做了改进,接下来咱们来看一下现在的做法吧!
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <!-- 屏蔽HOME键需要的权限 -->
public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;自定义的标识
window = getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE;
window.setAttributes(params);
this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED,
FLAG_HOMEKEY_DISPATCHED);// 屏蔽home关键代码
重写onKeydown事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return false;
}
然后运行程序你会发现奇迹出现了,亲测有效,客户的要求最终我还是实现了!
接下来咱们讲一下下拉菜单的有效屏蔽办法,这个让我google了好久,但是黄天不负有心人还是让我找到了而且亲测有效
权限:
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
重新onWindowFocusChanged,直接了当!
public void onWindowFocusChanged(boolean hasFocus) {
System.out.println("hasfocus--->>>" + hasFocus);
super.onWindowFocusChanged(hasFocus);
try {
Object service = getSystemService("statusbar");
Class<?> statusbarManager = Class
.forName("android.app.StatusBarManager");
Method test = statusbarManager.getMethod("collapse");
test.invoke(service);
} catch (Exception ex) {
ex.printStackTrace();
}
}