private WindowManager wm;
private boolean showWm = true;//默认是应该显示悬浮通知栏
private WindowManager.LayoutParams params;
private View view;
private void initWindowManager() {
wm = (WindowManager) getApplicationContext().getSystemService(
Context.WINDOW_SERVICE);
params = new WindowManager.LayoutParams();
//注意是TYPE_SYSTEM_ERROR而不是TYPE_SYSTEM_ALERT
//前面有SYSTEM才可以遮挡状态栏,不然的话只能在状态栏下显示通知栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
params.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
} else {
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
}
params.format = PixelFormat.TRANSLUCENT;
//设置必须触摸通知栏才可以关掉
params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL