如何在Android上关闭屏幕?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (160)

我正在尝试在某个动作发生后打开和关闭显示屏。从我从wake lock所了解到的情况来看,这就是我所拥有的:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);    
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
提问于
用户回答回答于

关闭屏幕有两种选择:

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);

// Choice 1
manager.goToSleep(int amountOfTime);

// Choice 2
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
wl.release();

你可能也需要此权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />

尝试这种方法; 一旦光线足够低,android会关闭屏幕:

WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
用户回答回答于

以下是从SDK文档复制的。如果你想保持屏幕,我认为SCREEN_BRIGHT_WAKE_LOCK就足够了:

Flag Value                CPU   Screen  Keyboard
PARTIAL_WAKE_LOCK          On*    Off      Off

SCREEN_DIM_WAKE_LOCK       On     Dim      Off

SCREEN_BRIGHT_WAKE_LOCK    On     Bright   Off

FULL_WAKE_LOCK             On     Bright   Bright

扫码关注云+社区