【问题标题】:Android Java : Turn screen OffAndroid Java:关闭屏幕
【发布时间】:2012-03-06 21:14:45
【问题描述】:

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

我已经阅读了我应该使用的,

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

但是当我这样做时,什么都没有发生。

还有其他方法吗?

【问题讨论】:

标签: java android permissions screen


【解决方案1】:

您需要为您的应用授予正确的权限才能执行此操作:

将<uses-permission android:name="android.permission.DEVICE_POWER" /> 添加到<manifest> 标签内的清单中

如果您想继续使用屏幕,请按照 Dianne Hackborn 在 Google Plus 上的建议: KeepScreenOn

【讨论】:

  • 感谢您的回答。我已将该权限放入清单中,但由于它是 2 级权限,因此我们需要具有特定权限(系统)才能使用它。这就是我所说的“特殊权限”,抱歉我解释得很糟糕。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
  • 2013-12-08
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
相关资源
最近更新 更多