首页 > 解决方案 > 如何确定是否已经设置了 FLAG_KEEP_SCREEN_ON?

问题描述

我根据某些条件锁定屏幕,并在不再满足的条件后释放。有没有办法检查锁是否已经打开并且不再设置它?并且通过扩展,即使它已经打开,再次设置此锁是否有任何负面影响?

这是设置它的方法

`

        final Activity activity = themedContext.getCurrentActivity();
        if (activity != null) {
            activity.runOnUiThread(new Runnable() {
                @Override
                public void run() {    
                  activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
                }
            });
        }

`

这是一种将其设置为关闭的方法:`

        final Activity activity = themedContext.getCurrentActivity();
        if (activity != null) {
            Log.d("onVideoSizeChanged ", "screenOnLockRelease");
            activity.runOnUiThread(new Runnable() {
                @Override
                public void run() {   
                 activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
                }
            });
        }

`themedContext - 只是应用上下文

我发现的唯一相关帖子:如何检测 FLAG_KEEP_SCREEN_ON 是否仅在 Activity 内设置?

但是当我检查属性时: WindowManager.LayoutParams attributes = getAttributes(); 我似乎无法从中获取标志。我对JAVA还不是很精通,所以请明确回答。谢谢转发

标签: android

解决方案


推荐阅读