我使用下面的代码打开和关闭屏幕。这两段代码都可以在大多数设备上运行(在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);