我想让设备进入睡眠状态或关闭屏幕。我进行了调查,并找到了这个主题:在Android上关闭屏幕。
基本上,有三种方法可以实现它,但是我发现了这三种方法的问题:
a)选择1:
基本上,有三种方法可以实现它,但是我发现了这三种方法的问题:
a)选择1:
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
manager.goToSleep(int amountOfTime);
问题: 它导致了FC错误。我已经阅读了需要DEVICE_POWER
权限,但普通应用无法获得。
b) 选择2:
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
wl.release();
问题:这对我不起作用,我不知道为什么。它没有给我一个FC,但是它是无害的。c)选择3:
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
问题:我可以让它工作,但当我尝试打开设备时,它会表现出奇怪的行为,例如不想返回,或者如果我的应用程序在前台,则按下按钮后自动进入睡眠状态。这看起来更像是提示或解决方法,而不是正常解决方案。
有人能告诉我任何一个好的方法来让设备进入睡眠或关闭屏幕,以便不会出现问题?这对我来说听起来很罕见,如此简单的功能却没有一个好的使用方法(或至少有很好的文档记录)。