private void setUnlocked() { Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); winParams.flags |= (WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED //| WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); win.setAttributes(winParams); } private void setLocked() { Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); winParams.flags &= (~WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD & ~WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED //& ~WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON & ~WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); win.setAttributes(winParams); } km = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); if(km.inKeyguardRestrictedInputMode()){ setUnlocked();// screen is locked,keeping this UI can not be locked } else { setLocked();// screen is unlocked,keeping this UI can be locked }