【问题标题】:Is possible to Keep Screen On and Dimming using flags?是否可以使用标志保持屏幕开启和变暗?
【发布时间】:2015-05-26 08:51:23
【问题描述】:

我正在使用以下代码来保持屏幕开启:

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

我唯一的问题是我想继续使用调光屏幕来节省电池。我知道如何使用WakeLock 来做到这一点,但是没有它有没有办法做到这一点?

【问题讨论】:

  • 为什么没有它你想这样做?使用wakelock有什么问题吗?
  • 唤醒锁已被弃用。正如您所说“人们不使用唤醒锁功能,因为这需要您为您的应用程序提供额外的权限,并且很容易引入错误”
  • 好像this 就是你要找的...

标签: android


【解决方案1】:

通常,人们不会使用唤醒锁功能,因为这需要您为您的应用授予额外的权限,并且很容易引入错误,您会意外地保持唤醒锁并因此保持屏幕打开。因此最好使用窗口标志FLAG_KEEP_SCREEN_ON,您可以在活动的窗口上启用它。

另一种解决方案是将android:keepScreenOn="true" (documentation) 添加到需要保持屏幕开启的视图中。这将允许您对哪些视图保持打开和哪些视图不进行更精细的控制。您甚至可以通过这种方式从资源文件中引用设置。

相关方法setKeepScreenOn(true)也可以用于此目的。

【讨论】:

  • 嗯,很好的答案,但不是我的问题。这些事情我已经知道了。
  • @WindRider:那是你的问题吗?我将 OP 名称视为 Victor 。 :)
  • 大声笑,我评论了错误的问题。对不起,芽!我没有意识到我已经点击了另一个问题,而不是我的。 :)
  • 我知道这件事,但如果我这样做,屏幕会保持明亮,我想保持调光,就像唤醒锁一样。
【解决方案2】:

我不确定这种方法是否会节省电池,但您可以创建一个不可见的活动并为其移除触摸输入并将其设置为暗淡,如下所示:

wm = (WindowManager) getApplicationContext()
                .getSystemService(Context.WINDOW_SERVICE);
        inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mTopView = (ViewGroup) inflater.inflate(
                R.layout.activity_invisible, null);
        params.flags =  WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                | WindowManager.LayoutParams.FLAG_DIM_BEHIND
                | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
params.dimAmount=0.3f;//0 is transparent 1 is opaque
rl = (RelativeLayout) mTopView.findViewById(R.id.window);
        getWindow().setAttributes(params);
        wm.addView(mTopView, params);}

我已经在我的applications 之一中测试了代码。应该可以。

【讨论】:

    【解决方案3】:

    您可以使用clearFlag() 方法清除以编程方式设置的标志

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    

    这将使屏幕再次变暗。

    【讨论】:

    • 我知道这是一个非常古老的问题,但希望上述解决方案可能对将来偶然发现这个问题的人有所帮助!
    • 这似乎会让屏幕再次熄灭...看来 OP 想要替换 SCREEN_DIM_WAKE_LOCK...
    猜你喜欢
    • 2012-05-03
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    相关资源
    最近更新 更多