以编程方式打开和关闭屏幕不能在某些设备上运行

时间:2012-11-16 12:27:00

标签: android screen wakelock android-windowmanager powermanager

我使用下面的代码打开和关闭屏幕。这两段代码都可以在大多数设备上运行(在Galaxy Note,Galaxy S2等等上测试过),但不适用于少数代码(主要是平板电脑,但也有部分手机)。在某些设备屏幕上工作,但屏幕关闭不,而其他一些设备相反。我不确定原因是什么,因为它是非常标准的代码(因为它适用于某些设备,这意味着触发这些功能,即函数调用,不是问题)。是否有其他方法可以打开/关闭我可以使用的屏幕?非常感谢任何帮助。

屏幕显示: -

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
final WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
                                  |PowerManager.ACQUIRE_CAUSES_WAKEUP
                                  |PowerManager.ON_AFTER_RELEASE, "");
wl.acquire();

屏幕关闭(这会调用一个只使用设备管理员权限锁定和关闭屏幕的活动。在某些设备上,这只会锁定屏幕。在其他设备上,它不会做任何事情。在某些情况下,它完美地工作): -

 devicePolicyManager.lockNow();

这是我尝试过的另一种方法,我无法工作得太好。基本上我将亮度设置为0并关闭屏幕,然后执行这些操作的活动调用finish()但由于某种原因,我无法将屏幕重新打开,直到此后5-10秒,无论如何我一直按下按钮(Home,Power)。

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

0 个答案:

没有答案