Android Java:关闭屏幕

时间:2012-02-15 14:11:20

标签: java android permissions screen

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

我读过我应该使用的,

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();

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

还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

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

<uses-permission android:name="android.permission.DEVICE_POWER" />添加到<manifest>标记

中的清单中

如果您希望屏幕保持使用,请按照Dianne Hackborn在Google Plus上的建议: KeepScreenOn