2016-09-16 163 views
0

我想在用户单击按钮时关闭屏幕。我试图用PowerManager类来完成它,但我没有获得好的结果。什么是最好的方式来关闭在Android的屏幕?如何以编程方式关闭android中的屏幕?

我使用下面的代码:

PowerManager pm = (PowerManager)this.getSystemService(
      Context.POWER_SERVICE); 
    PowerManager.WakeLock wl = pm.newWakeLock(
      PowerManager.PARTIAL_WAKE_LOCK, 
      ""); 
    wl.acquire(); 

但只有工作才能验证码:

WindowManager.LayoutParams params = getWindow().getAttributes(); 
    params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; 
    params.screenBrightness = 0; 
    getWindow().setAttributes(params); 

但是,这个代码仅将亮度设置为0,但没有关闭屏幕。

非常感谢。

+0

是否要关闭或锁定设备? – Aspicas

+0

http://stackoverflow.com/a/30365638/2633909检查此 – DKV

+0

可能重复的[Android:如何以编程方式打开和关闭屏幕?](http://stackoverflow.com/questions/9561320/android-how-以编程方式打开和关闭屏幕) –

回答

2

您可以通过覆盖系统屏幕关闭时间来关闭屏幕。

先得到系统关闭时间

int defaultTurnOffTime = Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, 60000); 

然后把你的回合断时间

Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, 1000); 

,当屏幕关闭,设置默认的关闭时间

Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, defaultTurnOffTime); 

加以下权限

<uses-permission android:name="android.permission.WRITE_SETTINGS"/> 
相关问题