我试图关闭Android屏幕然后再打开几秒钟。 “关闭”部分可以使用此代码:
WindowManager.LayoutParams layoutParam = getWindow().getAttributes();
oldBrightness = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS)/255f;
layoutParam.screenBrightness = 0;
layoutParam.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
getWindow().setAttributes(layoutParam);
但是,当我尝试再次打开屏幕时,它不适用于此代码:
WindowManager.LayoutParams layoutParam = getWindow().getAttributes();
layoutParam.screenBrightness = oldBrightness;
layoutParam.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
getWindow().setAttributes(layoutParam);
有什么想法解决这个问题吗?
感谢
答案 0 :(得分:1)
我想你可以试试Powermanager WakeLock也许它会起作用。我在我的应用程序中使用此代码。而且运作良好。 :)
此外,您需要在清单中设置权限。
<uses-permission android:name="android.permission.WAKE_LOCK"/> // Manifest Permission
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "MyWakeLock");
wakeLock.acquire();
答案 1 :(得分:0)
首先,您确定此行中的“/ 255f”:
oldBrightness = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS)/255f;
获取/设置“oldBrightness”时的值是什么?
也许你可以试试这个:
PowerManager.WakeLock lck = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
lck.acquire();
正常的唤醒锁定不会打开屏幕,但会在用户启动时使其保持打开状态。但是这个标志迫使屏幕立即打开。它需要“android.permission.WAKE_LOCK”。
更多信息:
http://developer.android.com/reference/android/os/PowerManager.html#PARTIAL_WAKE_LOCK
屏幕属性(开,关,亮,暗等):
http://developer.android.com/reference/android/os/PowerManager.html