屏幕调光/锁定预防android

时间:2014-05-23 05:23:53

标签: android

我使用此代码来防止调光/锁定屏幕,它完全可以防止锁定,但还没有防止调光效果。请告诉我一些防止变暗的方法

protected void setScreenLock(boolean on){


  if(mWakeLock == null){
        PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
        mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK |
                                    PowerManager.ON_AFTER_RELEASE, TAG);
    }
    if(on){
     mWakeLock.acquire();
    }else{
        if(mWakeLock.isHeld()){
            mWakeLock.release();
        }
     mWakeLock = null;
    }

}

2 个答案:

答案 0 :(得分:0)

添加

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
View root = findViewById(android.R.id.content);
if (root != null)
    root.setKeepScreenOn(true);

if部分。这不会让屏幕变暗。

答案 1 :(得分:0)

根本不要使用WakeLock(删除当前代码,您也可以从Manifest文件中删除相关权限) - 这是不正确的(在大多数情况下)方法。在FLAG_KEEP_SCREEN_ON中使用onCreate()标志告诉框架为您管理此问题。 Doc reads

  

窗口标志:只要该窗口对用户可见,请保留   设备的屏幕亮起。

像这样:

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