Android Java:关闭屏幕

我正在制作一个应用程序,用接近传感器打开和关闭屏幕。 接近代码已完成,但我在使用屏幕控制时遇到了麻烦。

我读过我应该用的,

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE); manager.goToSleep(int amountOfTime); 

为此,我需要授予特殊权限才能使其正常工作,但我还没弄清楚如何做到这一点。

此外,我已阅读有关更改屏幕亮度的内容

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

但这种方式只能在我的应用程序上关闭屏幕; 如果我的应用程序在后台运行,它不起作用。

我还读过关于使用Wakelock(我使用它们从屏幕关闭唤醒我的手机),但是什么时候

 PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag"); wl.acquire(); wl.release(); 

但是当我这样做时,没有任何反应。

还有其他办法吗?

您需要为您的应用程序提供正确的权限:

标签内的Manifest中

如果你想让你的屏幕继续使用,就像Dianne Hackborn在Google Plus上所建议的那样: KeepScreenOn